How to get a negative index of an element from the list in Python? A negative index of a list in Python refers to accessing elements in a list by counting from the end of the list rather than from the beginning. You can use negative indexing to access elements of a list or string from the end instead of the beginning. The index -1
refers to the last element in the list, and -2
refers to the second last element.
You can represent the negative index of elements in a list in Python using many ways, for example, by using index() & len(), enumerate(), For Loop & range(), and ~ operator + list slicing + index() methods. In this article, I will explain the concept of a negative index of a list by using all these methods with examples.
1. Quick Examples of Negative Index of List
If you are in a hurry, below are some quick examples of a negative index of a list.
# Quick examples of negative index
# Initialize list
mylist = [3, 7, 4, 2, 8, 6, 9, 5]
# Example 1: Using a negative index of elements in list
# Using index() + len() method
element = 8
neg_index = mylist.index(element) - len(mylist)
# Example 2: Loop over the list
# Using enumerate()
element = 6
for i, val in enumerate(mylist):
if val == element:
neg_index = -(len(mylist) - i)
break
# Example 3: Using for loop and range function
# To find the negative index
element = 6
for i in range(len(mylist)-1, -1, -1):
if mylist[i] == element:
neg_index = -len(mylist) + i
break
# Example 4: Using ~ operator + list slicing + index()
element = 4
neg_index = ~mylist[::-1].index(element)
# Example 5: iterate over the list
element = 8
index = -1
for i, elem in enumerate(mylist):
if elem == element:
index = -(i+1)
break
2. Negative index of a List Using index() & len() Method
You can use negative indices to access elements of a list from the ending point. In a list, the index of the last element refers to -1
, the second element from the last refers to -2
, and so on. You can use the index() method along with the len()
function to get the index of the list element from the ending point.
# Initialize list
mylist = [3, 7, 4, 2, 8, 6, 9, 5]
print("Original list: ", mylist)
# Initializing Element
element = 8
# Get negative index of specified element in the list
# Using index() & len() method
neg_index = mylist.index(element) - len(mylist)
print('Negative index of', element, ':', neg_index)
Yields below output.
3. Negative index of Element in List Using enumerate() and a loop
You can also find the negative index of an element in a list using the enumerate() function and a for loop in Python. For example, the enumerate()
function is used to loop over the list mylist
. For each element in the list, the loop
checks, if the element is equal to the element variable, initialized earlier.
If the element is found, the negative index is calculated by subtracting the length of the list from the current index i
. The code then prints the negative index of the element and breaks out of the loop
using the break statement.
# Initialize list
mylist = [3, 7, 4, 2, 8, 6, 9, 5]
print("Original list: ", mylist)
# Initializing Element
element = 6
# Loop over the list
# Using enumerate()
for i, val in enumerate(mylist):
if val == element:
# calculating negative index
# Using length of list and current index
neg_index = -(len(mylist) - i)
break
print('Negative index of', element, ':', neg_index)
Yields below output.
4. Using a For Loop and range() Function
You can also get the negative index of an element in a list using a for loop and the range() function. For instance, you start the range()
function from the last index of the list (i.e., len(my_list)-1)
and iterate backward to the first index (i.e., -1)
, with a step of -1
to traverse the list in reverse order. Inside the loop, you check each element of the list to see if it matches the target element element
.
If you find a match, you calculate the negative index of the element using the formula -len(my_list) + i
, where i
is the index of the element. you can then print out the result and break out of the loop using the break
statement.
# Initialize list
mylist = [3, 7, 4, 2, 8, 6, 9, 5]
print("Original list: ", mylist)
# Initializing Element
element = 6
# Using for loop and range function
# To find the negative index
for i in range(len(mylist)-1, -1, -1):
if mylist[i] == element:
neg_index = -len(mylist) + i
break
print('Negative index of', element, ':', neg_index)
Yields the same output as above.
5. Negative index of Element in List Using ~ operator + list slicing + index()
Use the ~
(tilde) operator along with list slicing and the index() method. The code reverses the original list using list slicing (mylist[::-1])
to create a new list with the elements in reverse order. The index()
method is then used to find the first occurrence of the target element element
in this reversed list.
The result of index()
is the index of element
relative to the reversed list. To convert this to the negative index relative to the original list, you can use the ~
operator to bitwise negate the index value. This results in a negative number that represents the index of element
the original list. The code then prints out the result using an f-string, which displays the negative index of element
.
# Initialize list
mylist = [3, 7, 4, 2, 8, 6, 9, 5]
print("Original list: ", mylist)
# Initializing Element
element = 4
# Using ~ operator + list slicing + index()
neg_index = ~mylist[::-1].index(element)
print('Negative index of', element, ':', neg_index)
Yields below output.
Here is another example
# Initialize list
mylist = [3, 7, 4, 2, 8, 6, 9, 5]
print("Original list: ", mylist)
# Initializing Element
element = 8
# Initialize index variable
index = -1
# Iterate over the list
for i, elem in enumerate(mylist):
if elem == element:
index = -(i+1)
break
print('Negative index of', element, ':', index)
Yields below output.
Conclusion
In this article, I have explained the negative index of elements in a list Python by using index()
& len()
, enumerate()
, For Loop
& range()
, and ~
operator+list slicing+index()
methods with examples.
Happy Learning !!
Related Articles
- Python list union with example.
- How to get negative index of a list?
- How to remove first element from list in Python?
- Get first N elements of list
- How to create a list of tuples in Python?
- Ways to Loop Through a List in Python
- Get unique values from a list in Python
- Select random item from list in Python
- How to get the last element of a list
- Difference between list append() vs extend()
- Convert list of tuples to list of lists in Python
- Remove common elements from two lists in Python
- Check given object is a list or not in Python
- How to get even Integers from Python list?