List indexing and slicing help you get parts or single items from a list easily. It is like picking fruits from a basket by their position.
List indexing and slicing in Python
my_list = [10, 20, 30, 40, 50] # Indexing single_item = my_list[index] # Slicing sub_list = my_list[start:stop:step]
Indexing starts at 0 for the first item.
Slicing uses start (inclusive), stop (exclusive), and step (optional) to get parts of the list.
my_list = [10, 20, 30, 40, 50] print(my_list[0]) # First item print(my_list[-1]) # Last item
my_list = [10, 20, 30, 40, 50] print(my_list[1:4]) # Items from index 1 to 3 print(my_list[:3]) # First three items print(my_list[2:]) # From index 2 to end
my_list = [10, 20, 30, 40, 50] print(my_list[::2]) # Every other item print(my_list[::-1]) # Reverse the list
empty_list = [] print(empty_list[0:1]) # Slicing empty list returns [] single_item_list = [100] print(single_item_list[0]) # Indexing single item print(single_item_list[0:1]) # Slicing single item
This program shows how to use indexing and slicing on different lists: normal, single item, and empty. It prints the results clearly.
def print_list_info(my_list): print(f"Original list: {my_list}") if my_list: print(f"First item (index 0): {my_list[0]}") print(f"Last item (index -1): {my_list[-1]}") else: print("List is empty, no items to show.") print(f"Slice from index 1 to 3: {my_list[1:4]}") print(f"Slice first 3 items: {my_list[:3]}") print(f"Slice from index 2 to end: {my_list[2:]}") print(f"Every other item: {my_list[::2]}") print(f"Reversed list: {my_list[::-1]}") # Test with a normal list numbers = [10, 20, 30, 40, 50] print_list_info(numbers) print("\n") # Test with a single item list single_item_list = [100] print_list_info(single_item_list) print("\n") # Test with an empty list empty_list = [] print_list_info(empty_list)
Indexing and slicing are very fast operations with time complexity O(k), where k is the size of the slice.
Slicing creates a new list, so it uses extra space proportional to the slice size.
Common mistake: forgetting that the stop index in slicing is not included.
Use indexing to get single items, slicing to get parts or copies of lists.
Indexing gets one item by position, starting at 0.
Slicing gets a part of the list using start, stop, and step.
Negative indexes count from the end, and step can reverse or skip items.