Python Lists
The intentions of this article is to host a set of example operations that can be performed around lists, a crucial data structure in Python.
Lists
In Python, List is an object that contains a sequence of other arbitrary objects. Lists unlike tuples are mutable objects.
Defining a list
Lists are defined by enclosing a sequence of objects inside square brackets, “[” and “]”. A list can contain sequence of mixed data types.
>>> # empty list ... >>> a = [] >>> >>> type(a) <class 'list'> >>> >>> # list containing same data types ... >>> >>> a = [1, 4, 9, 16] >>> >>> type(a) <class 'list'> >>> >>> # list containing different data types ... >>> a = [1, "python", 7.4, True] >>> >>> type(a) <class 'list'> >>>
A list can be nested
>>> # nested list ... >>> a = [[1, 4, 9], ["thetaranights.com", "blog", "python"]] >>> type(a) <class 'list'> >>> >>> >>> a = [[1, 4, 9], "thetaranights.com"] >>> >>> type(a) <class 'list'> >>>
Accessing elements from a list via index
List index is used to access elements of a list. List index starts from 0 and should be an integer.
>>> a = [[1, 4, 9], ["thetaranights.com", "blog", "python"]] >>> a[0] [1, 4, 9] >>> a[0][2] 9 >>> a[1][0] 'thetaranights.com' >>>
Negative Indexing
Python allows accessing elements from a list via negative indexes such that the last element would be accessed via list_name[-1] and second last element would be accessed via list_name[-2]
>>> a = [1, 4, 9, 16] >>> a[-1] 16 >>> a[-2] 9 >>> a[-3] 4 >>>
Slicing
>>> a = [1, 4, 9, 16, 25] >>> a[1:3] [4, 9] >>> a[:4] [1, 4, 9, 16] >>> a[3:] [16, 25] >>> a[:-1] [1, 4, 9, 16] >>>
Lists are mutable
>>> a = [1, 4, 9, 16, 25] >>> >>> a [0] = "mutable" >>> a ['mutable', 4, 9, 16, 25] >>> >>> a[:2] = [256, 1024] # changing a range of elements of a list to the sequence given in the right of assignment operator >>> a [256, 1024, 9, 16, 25] >>>
Adding elements to an existing list
>>> a = [1, 4, 9, 16, 25] >>> a.append(36) >>> a [1, 4, 9, 16, 25, 36] >>>
Extending a list with another sequence
>>> a = [1, 4, 9, 16] >>> a.extend([25, 36, 49]) >>> a [1, 4, 9, 16, 25, 36, 49] >>> a.extend((64, 91)) >>> a [1, 4, 9, 16, 25, 36, 49, 64, 91] >>>
Concatenation and Multiplication
>>> a = [1, 4, 9, 16] >>> a + [25, 36, 49] [1, 4, 9, 16, 25, 36, 49] >>> >>> # multiplication ... >>> a * 7 [1, 4, 9, 16, 1, 4, 9, 16, 1, 4, 9, 16, 1, 4, 9, 16, 1, 4, 9, 16, 1, 4, 9, 16, 1, 4, 9, 16] >>>
Add items to a list before certain index
>>> # first item to the insert() is the index and the later is the value to insert ... >>> a = [1, 4, 9, 16, 25] >>> a.insert(2, "new value") >>> a [1, 4, 'new value', 9, 16, 25] >>>
Various other methods on a list
method | description | usage |
---|---|---|
append() |
Append object to the end of list | L.append(object) |
clear() |
Remove all the items from list | L.clear() |
copy() |
A shallow copy of list | L.copy() |
count() |
Return number of occurrences of value passed as argument to the method | L.count(value) |
extend() |
Extend list by appending elements from the iterable | L.extend(iterable) |
index() |
Return first index of the value | L.index(value, [start, [stop]]) |
insert() |
Insert object before index | L.insert(index, object) |
pop() |
Remove and return item at index (defaults to last) | L.pop([index]) |
remove() |
Remove first occurrence of value | L.remove(value) |
reverse() |
Reverse the list in-place | L.reverse() |
sort() |
Sort in-place | L.sort(key=None, reverse=False) |
List built-ins
built-in | description |
len() |
Return the number of elements in a list |
max() |
Returns the largest element in the list |
min() |
Returns the smallest element in the list |
sorted() |
Returns the sorted version of the list. It does not sort the given list itself. |
sum() |
Returns the sum of all the elements of the list |
all() |
Returns true if all the elements of the list evaluate to true (See truthy and falsy concepts) |
any() |
Returns true if any element of the list evaluates to true |
enumerate() |
Returns enumerate object that contains the index and corresponding values of an iterable. |
list() |
Converts an iterable (tuple, string, set, dictionary) to a list. |
List Comprehension
One of the major features of python is list comprehension. It is a natural way of creating a new list where each element is the result of some operations applied to each member of another sequence of an iterable. The construct of a list comprehension is such that it consists of square brackets containing an expression followed by a for clause then by zero or more for or if clause. List comprehensions always returns a list.
>>> [x ** 2 for x in range(1, 11)] [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] >>>
In a rather real usage scenarios, the expression after the bracket ‘[‘ is a call to a method/function.
some_list = [function_name(x) for x in some_iterable]
Leave a Reply