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

  • non-capturing group, Named Groups,groupdict()

    To create a non-capturing group in Python’s re module, you use the syntax (?:…). This groups a part of a regular expression together without creating a backreference for that group. A capturing group (…) saves the matched text. You can then access this captured text using methods like group(1), group(2), etc. A non-capturing group (?:…)…

  • Combined Character Classes

    Combined Character Classes Explained with Examples 1. [a-zA-Z0-9_] – Word characters (same as \w) Description: Matches any letter (lowercase or uppercase), any digit, or underscore Example 1: Extract all word characters from text python import re text = “User_name123! Email: test@example.com” result = re.findall(r'[a-zA-Z0-9_]’, text) print(result) # [‘U’, ‘s’, ‘e’, ‘r’, ‘_’, ‘n’, ‘a’, ‘m’, ‘e’, ‘1’, ‘2’,…

  • re.fullmatch() Method

    Python re.fullmatch() Method Explained The re.fullmatch() method checks if the entire string matches the regular expression pattern. It returns a match object if the whole string matches, or None if it doesn’t. Syntax python re.fullmatch(pattern, string, flags=0) import re # Target string string = “The Euro STOXX 600 index, which tracks all stock markets across Europe including the FTSE, fell by…

  • positive lookahead assertion

    A positive lookahead assertion in Python’s re module is a zero-width assertion that checks if the pattern that follows it is present, without including that pattern in the overall match. It is written as (?=…). The key is that it’s a “lookahead”—the regex engine looks ahead in the string to see if the pattern inside…

Leave a Reply

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