Tuples store multiple items together. Indexing and slicing help you get specific items or parts from a tuple easily.
Tuple indexing and slicing in Python
Start learning this pattern below
Jump into concepts and practice - no test required
tuple_name[index] tuple_name[start:end] tuple_name[start:end:step]
Indexing starts at 0 for the first item.
Slicing extracts items from start up to but not including end.
colors = ('red', 'green', 'blue') print(colors[0])
numbers = (10, 20, 30, 40, 50) print(numbers[1:4])
letters = ('a', 'b', 'c', 'd', 'e') print(letters[-1])
values = (1, 2, 3, 4, 5, 6) print(values[::2])
This program shows how to get items from a tuple using indexing and slicing.
fruits = ('apple', 'banana', 'cherry', 'date', 'fig') # Get first fruit first = fruits[0] # Get last fruit last = fruits[-1] # Get middle fruits middle = fruits[1:4] # Get every other fruit every_other = fruits[::2] print(f"First fruit: {first}") print(f"Last fruit: {last}") print(f"Middle fruits: {middle}") print(f"Every other fruit: {every_other}")
Trying to change a tuple item by index will cause an error because tuples cannot be changed.
Negative indexes count from the end: -1 is last, -2 is second last, and so on.
If you omit start in slicing, it starts from the beginning; if you omit end, it goes to the end.
Use indexing to get a single item from a tuple by position.
Use slicing to get a part of a tuple as a new tuple.
Negative indexes and steps help access items from the end or skip items.
Practice
What does my_tuple[2] return if my_tuple = (10, 20, 30, 40)?
Solution
Step 1: Understand tuple indexing
Indexing starts at 0, so index 2 means the third item in the tuple.Step 2: Identify the item at index 2
The tuple is (10, 20, 30, 40), so the item at index 2 is 30.Final Answer:
30 -> Option AQuick Check:
Index 2 in tuple = 30 [OK]
- Counting from 1 instead of 0
- Confusing index 2 with index 3
- Mixing up tuple with list indexing
Which of the following is the correct syntax to get the last item of a tuple t?
Solution
Step 1: Recall negative indexing in tuples
Negative index -1 accesses the last item in a tuple.Step 2: Check each option
t[-1] correctly accesses the last item. t[1] accesses second item, t[last] is invalid syntax, t[len(t)] causes IndexError because indexing starts at 0.Final Answer:
t[-1] -> Option BQuick Check:
Last item index = -1 [OK]
- Using len(t) as index (out of range)
- Trying to use variable 'last' as index
- Confusing positive and negative indexes
What is the output of this code?
t = (5, 10, 15, 20, 25) print(t[1:4])
Solution
Step 1: Understand slicing syntax
Slicing t[1:4] means start at index 1 up to but not including index 4.Step 2: Extract the slice from the tuple
Tuple is (5, 10, 15, 20, 25). Index 1 is 10, index 2 is 15, index 3 is 20. Index 4 (25) is excluded.Final Answer:
(10, 15, 20) -> Option AQuick Check:
Slicing excludes end index [OK]
- Including the end index in slice
- Confusing indexes with values
- Using parentheses instead of brackets for slicing
Find the error in this code:
t = (1, 2, 3, 4, 5) print(t[5])
Solution
Step 1: Check tuple length and indexing
Tuple has 5 items indexed 0 to 4. Index 5 is outside this range.Step 2: Understand what happens when accessing invalid index
Accessing t[5] causes an IndexError because the index is out of range.Final Answer:
IndexError: tuple index out of range -> Option CQuick Check:
Index must be less than length [OK]
- Using index equal to length
- Confusing SyntaxError with IndexError
- Assuming last index is length instead of length-1
Given t = (2, 4, 6, 8, 10, 12), which expression returns a tuple with every second item starting from the last item going backwards?
Solution
Step 1: Understand slicing with negative step
A negative step means slicing backwards. t[::-2] starts from the end and takes every second item backwards.Step 2: Check what t[::-2] returns
Tuple is (2,4,6,8,10,12). t[::-2] picks 12 (last), 8, 4, resulting in (12, 8, 4).Final Answer:
t[::-2] -> Option DQuick Check:
Negative step slices backwards skipping items [OK]
- Using positive step for backward slicing
- Starting slice incorrectly
- Confusing slice start and step positions
