Negative slicing in Python lists

Negative slicing in Python lists lets you access elements from the end of the list. It’s a handy way to get a portion of a list without knowing its exact length. In negative slicing, you use negative numbers as indices. The index -1 refers to the last element, -2 to the second to last, and so on. The basic syntax is list[start:stop:step], where start and stop can be negative.

Here are 20 examples of negative slicing with a simple list numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9].

Basic Negative Slicing

  1. Get the last element: numbers[-1]Result: 9
  2. Get the last three elements: numbers[-3:]Result: [7, 8, 9]
  3. Get all elements except the last one: numbers[:-1]Result: [0, 1, 2, 3, 4, 5, 6, 7, 8]
  4. Get elements from the third to last to the second to last: numbers[-3:-1]Result: [7, 8]
  5. Get elements from the fifth to last to the last: numbers[-5:]Result: [5, 6, 7, 8, 9]

Combining Positive and Negative Indices

  1. Get elements from index 2 to the second to last: numbers[2:-1]Result: [2, 3, 4, 5, 6, 7, 8]
  2. Get elements from the third to last to index 8: numbers[-3:9]Result: [7, 8]
  3. Get elements from index 0 to the fourth to last: numbers[:-4]Result: [0, 1, 2, 3, 4, 5]
  4. Get elements from the sixth to last to index 7: numbers[-6:8]Result: [4, 5, 6, 7]

Using Negative Step Values

  1. Reverse the entire list: numbers[::-1]Result: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
  2. Get the last three elements in reverse order: numbers[-1:-4:-1]Result: [9, 8, 7]
  3. Reverse the list from the second to last to the third element: numbers[-2:2:-1]Result: [8, 7, 6, 5, 4, 3]
  4. Get elements from the end, skipping every other one: numbers[::-2]Result: [9, 7, 5, 3, 1]
  5. Get the first three elements in reverse order using a negative step: numbers[2::-1]Result: [2, 1, 0]
  6. Reverse the first five elements: numbers[4::-1]Result: [4, 3, 2, 1, 0]

More Complex Examples

  1. Get elements from the fourth to last to the end, with a step of 2: numbers[-4::2]Result: [6, 8]
  2. Slice from the last element to the fifth element in reverse: numbers[-1:4:-1]Result: [9, 8, 7, 6, 5]
  3. Get the middle part of the list, from the fourth to last to the third element: numbers[-4:3]Result: [] (An empty list, since the start index is after the stop index and the step is positive)
  4. Get every other element in reverse order, starting from the second to last: numbers[-2::-2]Result: [8, 6, 4, 2, 0]
  5. Get the first three elements by slicing from the fourth to last element in reverse: numbers[-8:-11:-1]Result: [2, 1, 0]

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *