Python
Flask vs Django: What's the Difference Between Flask & Django?
In this tutorial of difference between Flask vs Django, we will discuss the key differences...
A list is a container that stores items of different data types (ints, floats, Boolean, strings, etc.) in an ordered sequence. It is an important data structure that is in-built in Python. The data is written inside square brackets ([]), and the values are separated by comma(,).
The items inside the list are indexed with the first element starting at index 0. You can make changes in the created list by adding new items or by updating, deleting the existing ones. It can also have duplicate items and a nested list.
There are many methods available on a list, and of the important one is the index().
In this tutorial, you will learn:
The list index() method helps you to find the first lowest index of the given element. If there are duplicate elements inside the list, the first index of the element is returned. This is the easiest and straightforward way to get the index.
Besides the built-in list index() method, you can also use other ways to get the index like looping through the list, using list comprehensions, enumerate(), filter methods.
The list index() method returns the first lowest index of the given element.
list.index(element, start, end)
Parameters | Description |
element | The element that you want to get the index. |
start | This parameter is optional. You can define the start: index to search for the element. If not given, the default value is 0. |
end | This parameter is optional. You can specify the end index for the element to be searched. If not given, it is considered until the end of the list. |
The list index() method returns the index of the given element. If the element is not present in the list, the index() method will throw an error, for example, ValueError: 'Element' is not in the list.
In the list my_list = ['A', 'B', 'C', 'D', 'E', 'F'] , we would like to know the index for element C and F.
The example below shows how to get the index.
my_list = ['A', 'B', 'C', 'D', 'E', 'F'] print("The index of element C is ", my_list.index('C')) print("The index of element F is ", my_list.index('F'))
Output:
The index of element C is 2 The index of element F is 5
In this example will try to limit searching for index in a list using start and end index.
my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'] print("The index of element C is ", my_list.index('C', 1, 5)) print("The index of element F is ", my_list.index('F', 3, 7)) #using just the startindex print("The index of element D is ", my_list.index('D', 1))
Output:
The index of element C is 2 The index of element F is 5 The index of element D is 3
When you try to search for index in the list for element that is not present ,you will get an error as shown below:
my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'] print("The index of element C is ", my_list.index('Z'))
Output:
Traceback (most recent call last): File "display.py", line 3, in <module> print("The index of element C is ", my_list.index('Z')) ValueError: 'Z' is not in list
With the list.index() method, we have seen that it gives the index of the element that is passed as an argument.
Now consider the list as : my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] . The name 'Guru' is present 3 times in the index, and I want all the indexes with the name 'Guru'.
Using for-loop we should be able to get the multiple indexes as shown in the example below.
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] all_indexes = [] for i in range(0, len(my_list)) : if my_list[i] == 'Guru' : all_indexes.append(i) print("Originallist ", my_list) print("Indexes for element Guru : ", all_indexes)
Output:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
Using a while-loop will loop through the list given to get all the indexes of the given element.
In the list : my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'], we need the all the indexes of element 'Guru'.
Below given is an example shows how to get all the indexes using while-loop
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] result = [] elementindex = -1 while True: try: elementindex = my_list.index('Guru', elementindex+1) result.append(elementindex) except ValueError: break print("OriginalList is ", my_list) print("The index for element Guru is ", result)
Output:
OriginalList is ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] The index for element Guru is [0, 3, 6]
To get all the indexes, a fast and straightforward way is to make use of list comprehension on the list.
List comprehensions are Python functions that are used for creating new sequences (such as lists, dictionaries, etc.) i.e., using sequences that have already been created.
They help to reduce longer loops and make your code easier to read and maintain.
Following example shows how to do it:
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] print("Originallist ", my_list) all_indexes = [a for a in range(len(my_list)) if my_list[a] == 'Guru'] print("Indexes for element Guru : ", all_indexes)
Output:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
Enumerate() function is a built-in function available with python. You can make use of enumerate to get all the indexes of the element in a list. It takes input as an iterable object (i.e., an object that can be looped), and the output is an object with a counter to each item.
Following example shows how to make use of enumerate on a list to get the all the indexes for given element.
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] print("Originallist ", my_list) print("Indexes for element Guru : ", [i for i, e in enumerate(my_list) if e == 'Guru'])
Output:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
The filter() method filters the given list based on the function given. Each element of the list will be passed to the function, and the elements required will be filtered based on the condition given in the function.
Let us use the filter() method to get the indexes for the given element in the list.
Following example shows how to make use of filter on a list.
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] print("Originallist ", my_list) all_indexes = list(filter(lambda i: my_list[i] == 'Guru', range(len(my_list)))) print("Indexes for element Guru : ", all_indexes)
Output:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
NumPy library is specially used for arrays. So here will make use of NumPy to get the index of the element we need from the list given.
To make use of NumPy, we have to install it and import it.
Here are the steps for same:
Step 1) Install NumPy
pip install numpy
Step 2)Import the NumPy Module.
import numpy as np
Step 3)Make use of np.array to convert list to an array
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] np_array = np.array(my_list)
Step 4)Get the index of the element you want, usingnp.where()
item_index = np.where(np_array == 'Guru')[0]
The final working code with output is as follows:
import numpy as np my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] np_array = np.array(my_list) item_index = np.where(np_array == 'Guru')[0] print("Originallist ", my_list) print("Indexes for element Guru :", item_index)
Output:
Originallist['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0 3 6]
The more_itertools.locate() helps to find the indexes of the element in the list.This module will work with python version 3.5+. The package more_itertools has to be installed first to make use of it.
Following are the steps to install and make use of more_itertools
Step1)Install more_itertools using pip (python package manager). The command is
pip install more_itertools
Step 2) Once the installation is done, import the locate module as shown below
from more_itertools import locate
Now you can make use of locate module on a list as shown below in the example:
from more_itertools import locate my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] print("Originallist : ", my_list) print("Indexes for element Guru :", list(locate(my_list, lambda x: x == 'Guru')))
Output:
Originallist : ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
In this tutorial of difference between Flask vs Django, we will discuss the key differences...
In this tutorial of difference between Python and JavaScript, we will discuss the key differences...
What is type() in Python? Python has a built-in function called type() that helps you find the...
What is JSON? JSON is a standard format for data exchange, which is inspired by JavaScript....
What is Regular Expression in Python? A Regular Expression (RE) in a programming language is a...
What are the modules in Python? A module is a file with python code. The code can be in the form...