Python course with 57 real-time projects - Learn Python
In today’s tutorial, we will learn about Python list. We will discuss how to create, access, slice, and reassign list in Python. Then we will see how to apply functions to them. Along with this, we will discuss Python List Operations and Concatenation.
So, let’s start the Python List Tutorial.
What is Python List?
Unlike C++ or Java, Python Programming Language doesn’t have arrays. To hold a sequence of values, then, it provides the ‘list’ class. A Python list can be seen as a collection of values.
1. How to Create Python List?
To create python list of items, you need to mention the items, separated by commas, in square brackets. This is the python syntax you need to follow. Then assign it to a variable. Remember once again, you don’t need to declare the data type, because Python is dynamically-typed.
>>> colors=['red','green','blue']
A Python list may hold different types of values.
>>> days=['Monday','Tuesday','Wednesday',4,5,6,7.0]
A list may have python list.
>>> languages=[['English'],['Gujarati'],['Hindi'],'Romanian','Spanish'] >>> languages
Output
>>> type(languages[0])
Output
A list may also contain tuples or so.
>>> languages=[('English','Albanian'),'Gujarati','Hindi','Romanian','Spanish'] >>> languages[0]
Output
>>> type(languages[0])
Output
>>> languages[0][0]='Albanian'
Output
Traceback (most recent call last):File “<pyshell#24>”, line 1, in <module>
languages[0][0]=’Albanian’
TypeError: ‘tuple’ object does not support item assignment
2. How to Access Python List?
To access a Python list as a whole, all you need is its name.
>>> days
Output
[‘Monday’, ‘Tuesday’, ‘Wednesday’, 4, 5, 6, 7.0]
Or, you can put it in a print statement.
>>> languages=[['English'],['Gujarati'],['Hindi'],'Romanian','Spanish'] >>> print(languages)
Output
To access a single element, use its index in square brackets after the list’s name. Indexing begins at 0.
>>> languages[0]
Output
An index cannot be a float value.
>>> languages[1.0]
Output
Traceback (most recent call last):File “<pyshell#70>”, line 1, in <module>
languages[1.0]
TypeError: list indices must be integers or slices, not float
3. Slicing a Python List
When you want only a part of a Python list, you can use the slicing operator [].
>>> indices=['zero','one','two','three','four','five'] >>> indices[2:4]
Output
This returns items from index 2 to index 4-1 (i.e., 3)
>>> indices[:4]
Output
This returns items from the beginning of the list to index 3.
>>> indices[4:]
Output
It returns items from index 4 to the end of the list in Python.
>>> indices[:]
Output
This returns the whole list.
- Negative indices- The indices we mention can be negative as well. A negative index means traversal from the end of the list.
>>> indices[:-2]
Output
This returns item from the list’s beginning to two items from the end.
>>> indices[1:-2]
Output
It returns items from the item at index 1 to two items from the end.
>>> indices[-2:-1]
Output
This returns items from two from the end to one from the end.
>>> indices[-1:-2]
Output
This returns an empty Python list, because the start is ahead of the stop for the traversal.
4. Reassigning a Python List (Mutable)
Python Lists are mutable. This means that you can reassign its items, or you can reassign it as a whole. Let’s take a new list.
>>> colors=['red','green','blue']
a. Reassigning the whole Python list
You can reassign a Python list by assigning it like a new list.
>>> colors=['caramel','gold','silver','occur'] >>> colors
Output
b. Reassigning a few elements
You can also reassign a slice of a list in Python.
>>> colors[2:]=['bronze','silver'] >>> colors
Output
If we had instead put two values to a single one in the left, see what would’ve happened.
>>> colors=['caramel','gold','silver','occur'] >>> colors[2:3]=['bronze','silver'] >>> colors
Output
colors[2:3] reassigns the element at index 2, which is the third element.
2:2 works too.
>>> colors[2:2]=['occur'] >>> colors
Output
c. Reassigning a single element
You can reassign individual elements too.
>>> colors=['caramel','gold','silver','occur'] >>> colors[3]='bronze' >>> colors
Output
Now if you want to add another item ‘holographic’ to the list, we cannot do it the conventional way.
>>> colors[4]='holographic'
Output
Traceback (most recent call last):File “<pyshell#2>”, line 1, in <module>
colors[4]=’holographic’
IndexError: list assignment index out of range
So, you need to reassign the whole list for the same.
>>> colors=['caramel','gold','silver','bronze','holographic'] >>> colors
Output
3. How can we Delete a Python List?
You can delete a Python list, some of its elements, or a single element.
a. Deleting the entire Python list
Use the del keyword for the same.
>>> del colors >>> colors
Output
colors
NameError: name ‘colors’ is not defined
b. Deleting a few elements
Use the slicing operator in python to delete a slice.
>>> colors=['caramel','gold','silver','bronze','holographic'] >>> del colors[2:4] >>> colors
Output
>>> colors[2]
Output
Now, ‘holographic’ is at position 2.
c. Deleting a single element
To delete a single element from a Python list, use its index.
>>> del colors[0] >>> colors
Output
Multidimensional Lists in Python
You can also put a list in a list. Let’s look at a multidimensional list.
>>> grocery_list=[['caramel','P&B','Jelly'],['onions','potatoes'],['flour','oil']] >>> grocery_list
Output
This is a grocery Python list with lists in it, where the lists are according to a category.
Or, you can choose to go deeper.
>>> a=[[[1,2],[3,4],5],[6,7]] >>> a
Output
To access the element 4 here, we type the following code into the shell.
>>> a[0][1][1]
Output
Concatenation of Python List
The concatenation operator works for lists as well. It lets us join two lists, with their orders preserved.
>>> a,b=[3,1,2],[5,4,6] >>> a+b
Output
Python List Operations
a. Multiplication
This is an arithmetic operation. Multiplying a Python list by an integer makes copies of its items that a number of times while preserving the order.
>>> a*=3 >>> a
Output
However, you can’t multiply it by a float.
>>> a*3.0
Output
Traceback (most recent call last):File “<pyshell#89>”, line 1, in <module>
a*3.0
TypeError: can’t multiply sequence by non-int of type ‘float’
b. Membership
You can apply the ‘in’ and ‘not in’ operators on a Python list.
>>> 1 in a
Output
>>> 2 not in a
Output
Iterating on a list
Python list can be traversed with a for loop in python.
>>> for i in [1,2,3]: if i%2==0: print(f"{i} is composite\n")
Output
Python List Comprehension
You can create a new list just like you would do in mathematics. To do so, type an expression followed by a for statement, all inside square brackets. You may assign it to a variable. Let’s make a list for all even numbers from 1 to 20.
>>> even=[2*i for i in range(1,11)] >>> even
Output
Optionally, you can add an if-statement to filter out items. If we want to change this list to hold only those items from 1 to 20 that are even and are divisible by 3, we write the following code.
>>> even=[2*i for i in range(1,11) if i%3==0] >>> even
Output
Built-in List Functions
There are some built-in functions in Python that you can use on python lists.
a. len()
It calculates the length of the list.
>>> len(even)
Output
b. max()
It returns the item from the list with the highest value.
>>> max(even)
Output
If all the items in your list are strings, it will compare.
>>> max(['1','2','3'])
Output
But it fails when some are numeric, and some are strings in python.
>>> max([2,'1','2'])
Output
Traceback (most recent call last):File “<pyshell#116>”, line 1, in <module>
max([2,’1′,’2′])
TypeError: ‘>’ not supported between instances of ‘str’ and ‘int’
c. min()
It returns the item from the Python list with the lowest value.
>>> min(even)
Output
d. sum()
It returns the sum of all the elements in the list.
>>> sum(even)
Output
However, for this, the Python list must hold all numeric values.
>>> a=['1','2','3'] >>> sum(a)
Output
Traceback (most recent call last):File “<pyshell#112>”, line 1, in <module>
sum(a)
TypeError: unsupported operand type(s) for +: ‘int’ and ‘str’
It works on floats.
>>> sum([1.1,2.2,3.3])
Output
e. sorted()
It returns a sorted version of the list, but does not change the original one.
>>> a=[3,1,2] >>> sorted(a)
Output
>>> a
Output
If the Python list members are strings, it sorts them according to their ASCII values.
>>> sorted(['hello','hell','Hello'])
Output
Here, since H has an ASCII value of 72, it appears first.
f. list()
It converts a different data type into a list.
>>> list("abc")
Output
It can’t convert a single int into a list, though, it only converts iterables.
>>> list(2)
Output
Traceback (most recent call last):File “<pyshell#122>”, line 1, in <module>
list(2)
TypeError: ‘int’ object is not iterable
g. any()
It returns True if even one item in the Python list has a True value.
>>> any(['','','1'])
Output
It returns False for an empty iterable.
>>> any([])
Output
h. all()
It returns True if all items in the list have a True value.
>>> all(['','','1'])
Output
It returns True for an empty iterable.
>>> all([])
Output
Built-in Methods
While a function is what you can apply on a construct and get a result, a method is what you can do to it and change it. To call a method on a construct, you use the dot-operator(.). Python supports some built-in methods to alter a Python list.
a. append()
It adds an item to the end of the list.
>>> a
Output
>>> a.append(4) >>> a
Output
b. insert()
It inserts an item at a specified position.
>>> a.insert(3,5) >>> a
Output
This inserted the element 5 at index 3.
c. remove()
It removes the first instance of an item from the Python list.
>>> a=[2,1,3,5,2,4] >>> a.remove(2) >>> a
Output
Notice how there were two 2s, but it removed only the first one.
d. pop()
It removes the element at the specified index, and prints it to the screen.
>>> a.pop(3)
Output
>>> a
Output
e. clear()
It empties the Python list.
>>> a.clear() >>> a
Output
It now has a False value.
>>> bool(a)
Output
f. index()
It returns the first matching index of the item specified.
>>> a=[1,3,5,3,4] >>> a.index(3)
Output
g. count()
It returns the count of the item specified.
>>> a.count(3)
Output
h. sort()
It sorts the list in an ascending order.
>>> a.sort() >>> a
Output
i. reverse()
It reverses the order of elements in the Python lists.
>>> a.reverse() >>> a
Output
This was all about the Python lists
Python Interview Questions on Lists
- What are lists in Python? Explain with example.
- How to get the elements of a list in Python?
- How to make a list in a list Python?
- What are lists used for in Python?
- What are lists called in Python?
Conclusion
Woah, that was a lot, wasn’t it? Let’s make a quick revision so you don’t forget it.
In this lesson on Python Lists, we first looked at how to declare and access a list. That included slicing lists in python. Then we looked at how to delete and reassign elements or an entire list.
Next, we learned about multidimensional lists and comprehension. We saw how to iterate on python lists, concatenate them, and also the operations that you can perform on them.
Lastly, we looked at some built-in functions and methods that you can call on lists. Hope you enjoyed, see you again.
Furthermore, if you have any query, feel free to ask in the comment section