← Back to Lessons
Edit on Github

Working with Lists in Python

Introduction to Python lists

Mastering the use of lists and loops is one of the 5 fundamental skills of building algorithms:

  1. Variables.
  2. Conditionals.
  3. Lists.
  4. Loops.
  5. Functions.

What is a List?

A list is, normally, any collection of values. The rules of how to add or remove elements from that list can change from one programming language to another. But – generally – they are the only ways for developers to create elements. Lists are not the only way we have to list store multiple values at once but it is the most used tool for that purpose. For example: list of students, list of artists, list of transactions…anything!

This primitive data-type does a lot more stuff than the others.

Every list has the same basic concepts:

The items: are the actual values inside in each position of the list.

The length: is the size of the list (how many items the list has).

Index: is the position of the element.

what is an list define list

☝List positions start a zero (0); the first element is the element in the position zero (0)

How to Declare a List?

These are different examples of list declarations:

1myList = [] # empty list 2myList = ["Apple", "Orange", "Donkey"] # The only way to declare a "list" - a mutable and ordered collection of items 3myTuple = ("Apple", "Orange", "Donkey") # This a "tuple" - a more limited, ordered but immutable collection of items 4mySet = {"Apple", "Orange", "Donkey"} # This is a "set" - a more limited, unordered and immutable collection of items

Access Items in the List

To access a specific element in a list, you need an index. We call index the integer value that represents the position of the element you want to access/get/retrieve.

The index always must start at zero (0). That means that an List of 2 items can have index=0 or index=1. Trying to get the 2nd position will return "undefined" because it will mean that we are trying to access the third element (which does not exist). For example, to get any items in the list you can do the following:

1 2print(myList[0]) # print first element on the console 3 4aux = myList[3] 5print(aux); # print the 4th element on the console 6print(myList[len(myList) - 1]); # print the last element on the console

Update Items in the List

If you want you can reset or update any item inside of a list using its index like this:

1 myList[5] = 'Whatever value' 2 # Assign a value to the 6th element on the list

Adding Elements to Python Lists (append and insert)

Using append in Python Lists

The first way is to add the element to the end of the list, you should use this method every time you can because it's a lot faster than insert.

1 myList = ['Pedro','Juan','Maria'] 2 myList.append('Chris') # add Chris to the end of the list 3 print(myList); # Output: ['Pedro','Juan','Maria','Chris'];

Using insert in Python Lists

Using insert is easier for the developer because it will let you pick the positions in which you want to inster the element, but it is a slower method (worse performance):

1 myList = ['Pedro','Juan','Maria'] 2 myList.insert(1,'Chris') # add Chris between Pedro and Juan 3 print(myList); # Output ['Pedro','Chris','Juan','Maria'];

Removing Elements from a Python List (pop, remove, delete)

Python has many ways to delete an element from a list

Using POP

It will remove the last element only!

1 myList = ['Pedro','Chris','Juan','Maria'] 2 myList.pop() 3 print(myList) # Output ['Pedro','Chris','Juan']

Using Remove

It will let you remove the first occurence of an element by its name.

1 # If you want to delete 'Chris', you need to do the following: 2 myList = ['Pedro','Chris','Juan','Maria','Chris'] 3 myList.remove('Chris') 4 print(myList) # Output ['Pedro','Juan','Maria','Chris'];

Using Delete

It will allow you to delete many items at once, you have to specify starting possition and ending possition.

1 # If you want to delete 'Chris', you need to do the following: 2 myList = ['Pedro','Chris','Juan','Maria','Pepe','Mario','Bob'] 3 del myList[2:5] #this statement deletes the characters at indexes 2, 3 and 4 4 print(myList) # Output ['Pedro', 'Chris', 'Mario', 'Bob']

Looping a List

Normally, when you manipulate lists, you have to loop all the items. For example: order them manually, flip them, filter them, etc. There are many ways you can loop an entire list but the most used one is the for loop.

1myList = [3423,5,4,47889,654,8,867543,23,48,56432,55,23,25,12] 2for number in myList: 3 print(number)

Looping using a position

Sometimes it is useful to loop the array using each element's position (index). We can do that by using the range() function. By default the range will start from index zero and continue until a specified number is reached, not including that index number:

1myList = ['Pedro','Chris','Mario','Bob'] 2 3# the range will cut off before len(myList) is reached, and therefore we don't need to write (len(myList)-1) 4for i in range(len(myList)): 5 print("The positions is " + str(i) + " for the element " + myList[i]) 6 7### Output: 8# The positions is 0 for the element Pedro 9# The positions is 1 for the element Chris 10# The positions is 2 for the element Mario 11# The positions is 3 for the element Bob

It is also possible to specify the starting index in the range, as well as the increment, by adding a starting point (the first parameter), and an increment value (the last parameter) in the range method:

1myList = ['Pedro','Chris','Mario','Bob', "Greg", "Kyle"] 2 3for i in range(1, 6, 2): # range(start value, end value (non inclusive), increment value) 4 print("The positions is " + str(i) + " for the element " + myList[i]) 5 6### Output: 7# The positions is 1 for the element Chris 8# The positions is 3 for the element Bob 9# The positions is 5 for the element Kyle