Python List

Lists in python are collection of objects. They can include any python objects such as numerals, strings, other lists and dictionaries. The list is defined by square bracket as follows:

Python
my_list = []

The above example shows an empty list. Following is an example of a list with numbers:

Python
my_list = [1,2,4,65,43]
my_list
output
[1, 2, 4, 65, 43]

Lists can also contain strings.

Python
list_of_str = ['abc', 'goku', 'vada_pav', 'chicken_rice']
list_of_str
output
['abc', 'goku', 'vada_pav', 'chicken_rice']

Single list can also contain different types of objects. Following is an example of a list containing number, string, another list and a dictionary.

Python
list_mix = [3, 4, 'burger', ['Chicago', 23, 'Nile'], {'city_names': ['Delhi', 'London'], 'food_items': ['idli', 'mala-hotpot', 'rojak']}]
list_mix
output
[3,
 4,
 'burger',
 ['Chicago', 23, 'Nile'],
 {'city_names': ['Delhi', 'London'],
  'food_items': ['idli', 'mala-hotpot', 'rojak']}]

When the command lines become too long we can break the line after a comma in the list.

Python
list_mix = [3,
            4,
            'burger',
            ['Chicago', 23, 'Nile'],
            {'city_names': ['Delhi', 'London'],
             'food_items': ['idli', 'mala-hotpot', 'rojak']}]
list_mix
output
[3,
 4,
 'burger',
 ['Chicago', 23, 'Nile'],
 {'city_names': ['Delhi', 'London'],
  'food_items': ['idli', 'mala-hotpot', 'rojak']}]

List indexing

List index starts with zero as all indexes in python. Following is the general format of indexing a list.

my_list[from_index:to_index:step]

The to_index is not inclusive. It means that the list item at to_index will not be included in the result of indexing. We will see this an example of a list of number from 0 to 20.

Python
a = list(range(20))
a
output
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
Python
a[2:18:3]
output
[2, 5, 8, 11, 14, 17]

Here, we indexed the list from 2nd index to the 18th index with a step size of 3. The default stepsize is 1.

We will see different ways of indexing/slicing a list not.

From a defined index (e.g. 5) to end of the list.

Python
a[5::]
output
[5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

From start of the list to a defined index (e.g. 15) including the item at that index.

Python
a[:15+1]
output
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
Python
a[:16]
output
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]

The last element of a list can be indexed as -1, and the second last element is indexed as -2 and so on. Following are few example to index a list using negative numbers.

Python
a[-1]
output
19
Python
a[-10:-1]
output
[10, 11, 12, 13, 14, 15, 16, 17, 18]