Python: Lists Cheat Sheet

A list stores a series of items in a particular order. Lists allow you to store sets of information in one place, whether you have just a few items or millions of items. Lists are one of Python’s most powerful features readily accessible to new programmers, and they tie together many important concepts in programming.

Defining a list

Use square brackets to define a list, and use commas to separate individual items in the list. Use plural names for lists, to make your code easier to read.

Making a list

users = ['val', 'bob', 'mia', 'ron', 'ned']

Accessing Elements

Individual elements in a list are accessed according to their position, called the index. The index of the first element is 0, the index of the second element is 1, and so forth. Negative indices refer to items at the end of the list. To get a particular element, write the name of the list and then the index of the element in square brackets.

Getting the first element

first_user = users[0]

Getting the second element

second_user = users[1]

Getting the last element

newest_user = users[-1]

Modifying individual items

Once you’ve defined a list, you can change individual elements in the list. You do this by referring to the index of the item you want to modify.

Changing an element

users[0] = 'valerie'
users[-2] = 'ronald'

Adding element

You can add elements to the end of a list, or you can insert
them wherever you like in a list.

Adding an element to the end of the list

users.append('amy')

Starting with an empty list

users = []
users.append('val')
users.append('bob')
users.append('mia')

Inserting elements at a particular position

users.insert(0, 'joe')
users.insert(3, 'bea')

Removing Element

You can remove elements by their position in a list, or by the value of the item. If you remove an item by its value, Python removes only the first item that has that value.

Deleting an element by its position

del users[-1] 

Removing an item by its value

users.remove('mia')

Popping Elements

If you want to work with an element that you’re removing from the list, you can “pop” the element. If you think of the list as a stack of items, pop() takes an item off the top of the stack. By default pop() returns the last element in the list, but you can also pop elements from any position in the list.

Pop the last item from a list

most_recent_user = users.pop()
print(most_recent_user)

Pop the first item in a list

first_user = users.pop(0)
print(first_user)

Get length of a list

The len() function returns the number of items in a list.

Find the length of a list

num_users = len(users)
print("We have " + str(num_users) + " users.")

Sorting a list

The sort() method changes the order of a list permanently. The sorted() function returns a copy of the list, leaving the original list unchanged. You can sort the items in a list in alphabetical order, or reverse alphabetical order. You can also reverse the original order of the list. Keep in mind that lowercase and uppercase letters may affect the sort order.

Sorting a list permanently

users.sort()

Sorting a list permanently in reverse alphabetical order

users.sort(reverse=True)

Sorting a list temporarily

print(sorted(users))
print(sorted(users, reverse=True))

Reversing the order of a list

users.reverse()

Looping through the list

Lists can contain millions of items, so Python provides an efficient way to loop through all the items in a list. When you set up a loop, Python pulls each item from the list one at a time and stores it in a temporary variable, which you provide a name for. This name should be the singular version of the list name.

The indented block of code makes up the body of the loop, where you can work with each individual item. Any lines that are not indented run after the loop is completed.

Printing all items in a list

for user in users:
    print(user)

Printing a message for each item, and a separate message afterward

for user in users:
    print("Welcome, " + user + "!")
    print("Welcome, we're glad to see you all!")

Looping the range of number

You can use the range() function to work with a set of numbers efficiently. The range() function starts at 0 by default and stops one number below the number passed to it. You can use the list() function to efficiently generate a large list of numbers.

Printing the numbers 0 to 1000

for number in range(1001):
print(number)

Printing the numbers 1 to 1000

for number in range(1, 1001):
print(number)

Making a list of numbers from 1 to a million

numbers = list(range(1, 1000001))

Simple Statistic

There are a number of simple statistics you can run on a list containing numerical data.

Finding the minimum value in a list

ages = [93, 99, 66, 17, 85, 1, 35, 82, 2, 77]
youngest = min(ages)

Finding the maximum value

ages = [93, 99, 66, 17, 85, 1, 35, 82, 2, 77]
oldest = max(ages)

Finding the sum of all values

ages = [93, 99, 66, 17, 85, 1, 35, 82, 2, 77]
total_years = sum(ages)

Slicing a list

You can work with any set of elements from a list. A portion of a list is called a slice. To slice a list start with the index of the first item you want, then add a colon and the index after the last item you want. Leave off the first index to start at the beginning of the list, and leave off the last index to slice through the end of the list.

Getting the first three items

finishers = ['kai', 'abe', 'ada', 'gus', 'zoe']
first_three = finishers[:3]

Getting the middle three items

middle_three = finishers[1:4]

Getting the last three items

last_three = finishers[-3:]

Copying a list in python

To copy a list make a slice that starts at the first item and ends at the last item. If you try to copy a list without using this approach, whatever you do to the copied list will affect the original list as well.

Making a copy of a list

finishers = ['kai', 'abe', 'ada', 'gus', 'zoe']
copy_of_finishers = finishers[:]

Python list comprehensions

You can use a loop to generate a list based on a range of numbers or on another list. This is a common operation, so Python offers a more efficient way to do it. List comprehensions may look complicated at first; if so, use the for loop approach until you’re ready to start using comprehensions.

To write a comprehension, define an expression for the values you want to store in the list. Then write a for loop to generate input values needed to make the list.

Using a loop to generate a list of square numbers

squares = []
for x in range(1, 11):
square = x**2
squares.append(square)

Using a comprehension to generate a list of square numbers

squares = [x**2 for x in range(1, 11)]

Using a loop to convert a list of names to upper case

names = ['kai', 'abe', 'ada', 'gus', 'zoe']
upper_names = []
for name in names:
     upper_names.append(name.upper())

Using a comprehension to convert a list of names to upper case

names = ['kai', 'abe', 'ada', 'gus', 'zoe']
upper_names = [name.upper() for name in names]

Python Tuples

A tuple is like a list, except you can’t change the values in a tuple once it’s defined. Tuples are good for storing information that shouldn’t be changed throughout the life of a program. Tuples are designated by parentheses instead of square brackets. (You can overwrite an entire tuple, but you can’t change the individual elements in a tuple.)

Defining a tuple

dimensions = (800, 600)

Looping through a tuple

for dimension in dimensions:
      print(dimension)

Overwriting a tuple

dimensions = (800, 600)
print(dimensions)
dimensions = (1200, 900)

Django: Shell Cheat Sheet

Start a shell session

python manage.py shell

Access data from the project

from learning_logs.models import Topic

Topic.objects.all()
topic = Topic.objects.get(id=1)
topic.text 'Chess'

Table of contents