Practical Python for Beginners
LISTS AND LOOPS
Sarah Holderness
PLURALSIGHT AUTHOR
@dr_holderness
A List is a Container of Things
# empty list # list of strings
empty = [] acronyms = ['LOL', 'IDK', 'TBH']
# list of numbers # list of mixed items
numbers = [5, 10, 15, 20] anything = [5, 'SDK', 10.5]
# list of lists
lists = [ ['A', 'B', 'C'], ['D', 'E', 'F'] ]
Creating a List of Internet Slang Acronyms
acronyms = ['LOL', 'IDK', 'SMH', 'TBH']
We’re compiling a list of
acronyms that we’ll define later.
An Item’s Index is its Position
acronyms = ['LOL', 'IDK', 'SMH', 'TBH']
index [0] [1] [2] [3]
1st
>>> acronyms[0] 'LOL'
item
4th
>>> acronyms[3] 'TBH'
item
Note: if you want the nth item
then use index [n-1]
Creating a List and Adding Items
acronyms = [] We can create an
empty list.
acronyms.append('LOL')
acronyms.append('IDK') And then add each
print(acronyms) item individually.
['LOL', 'IDK']
Now we have 2
items in the list.
Creating a List and Adding Items
acronyms = ['LOL', 'IDK', 'SMH'] We can also create a
list with initial items.
acronyms.append('BFN')
acronyms.append('IMHO') And add items as we
print(acronyms) need to.
['LOL', 'IDK', 'SMH', 'BFN', 'IMHO']
We have our 2
extra items
Creating a List and Adding Items
acronyms = ['LOL', 'IDK', 'SMH']
acronyms.append('BFN') We haven’t called a
acronyms.append('IMHO') method like this
print(acronyms) before.
['LOL', 'IDK', 'SMH', 'BFN', 'IMHO']
Calling a Method
acronyms.append('BFN')
The list you The list What you want
dot
want to change method to add to the list
in parentheses()
Removing Items
acronyms = ['LOL', 'IDK', 'SMH', 'TBH', 'BFN']
You can use either
acronyms.remove('BFN') OR del acronyms[4]
remove or del
print(acronyms) depending on
whether you know
the value or the
['LOL', 'IDK', 'SMH', 'TBH'] index.
You can see 'BFN'
was removed
Check if Exists in List
if item in list
if 1 in [1, 2, 3, 4, 5]:
print('True')
True
Check if Exists in List
acronyms = ['LOL', 'IDK', 'SMH', 'TBH']
word = 'BFN'
if word in acronyms: False
print(word + ' is in the list')
else:
print(word + ' is NOT in the list') So this line is run
BFN is NOT in the list
Printing a List
acronyms = ['LOL', 'IDK', 'SMH', 'TBH']
print(acronyms)
['LOL', 'IDK', 'SMH', 'TBH']
What if we want to print each
acronym on a separate line?
We need a loop
The Syntax of a for loop
Loop
for variable in list
for acronym in acronyms:
print(acronym)
acronym is a temporary
variable that holds one of
the acronyms in the Like saying "do this" for
list for each run. each string acronym in
our acronyms list.
For Loop: Looping Over Each Item in a List
acronyms = ['LOL', 'IDK', 'SMH', 'TBH']
for acronym in acronyms:
print(acronym)
LOL 1st loop
IDK 2nd loop
SMH 3rd loop
TBH 4th loop
For Loop: Looping Over Each Item in a List
acronyms = ['LOL', 'IDK', 'SMH', 'TBH']
for acronym in acronyms:
print(acronym) Notice how the code
block you want
repeated inside the
loop is indented, just
LOL 1st loop
like in an if statement.
IDK 2nd loop
SMH 3rd loop
TBH 4th loop
For Loops Using range()
Adding Input to Expenses Calculator
We want the user to
expenses.py be able to enter their
own expenses
expenses = [10.50, 8.50, 5.30, 15.05, 20.00, 5.00, 3.00]
total = sum(expenses)
print("You spent $", total, " on lunch this week.", sep='')
Adding Input to Expenses Calculator
expenses.py
expenses = []
With our current set
expenses.append(float(input("Enter an expense:\n")))
of tools, we would
expenses.append(float(input("Enter an expense:\n"))) type input 7 times.
expenses.append(float(input("Enter an expense:\n")))
expenses.append(float(input("Enter an expense:\n")))
Is there a way we
expenses.append(float(input("Enter an expense:\n"))) can loop 7 times
expenses.append(float(input("Enter an expense:\n"))) instead and ask for
expenses.append(float(input("Enter an expense:\n"))) input inside the
... loop?
The range() Function
>>> range(7) Generates the sequence (0, 1, 2, 3, 4, 5, 6)
>>> range(0, 7, 1) Generates the sequence (0, 1, 2, 3, 4, 5, 6)
Start Stop Step
Note: Start and Step are optional.
Start is 0 by default, Step is 1.
Note: The sequence starts at 0 and ends at 6,
but there are 7 numbers.
The range() Function
>>> range(7) (0, 1, 2, 3, 4, 5, 6)
>>> range(0, 7, 1) (0, 1, 2, 3, 4, 5, 6)
>>> range(2, 14, 2) (2, 4, 6, 8, 10, 12)
We get even numbers
Start Stop Step
starting at 2 and
stopping before 14
Range and For Loops
for i in range(7): We can then use a for loop like
print(i) we’ve seen with the sequence
generated by range().
0
This let’s us loop a certain
1 number of times, which is what
2 needed to enter expenses…
3
4
5
6
Adding Input to Expenses Calculator
expenses.py
total = 0
expenses = []
for i in range(7):
expenses.append(float(input("Enter an expense:")))
total = sum(expenses)
print("You spent $", total, sep='')
Adding Input to Expenses Calculator
expenses.py
> python3 expenses.py
total = 0
Enter an expense:10
expenses = []
Enter an expense:5
for i in range(7):
Enter an expense:20
expenses.append(float(input("Enter an expense:")))
Enter an expense:12
Enter an expense:13
total = sum(expenses)
Enter an expense:8
Enter an expense:4
print("You spent $", total, sep='')
You spent $72
Adding Input to Expenses Calculator
expenses.py
What if we want the > python3 expenses.py
total = 0 user to enter the Enter an expense:10
expenses = [] number of expenses? Enter an expense:5
for i in range(7):
Enter an expense:20
expenses.append(float(input("Enter an expense:")))
Enter an expense:12
Enter an expense:13
total = sum(expenses)
Enter an expense:8
Enter an expense:4
print("You spent $", total, sep='')
You spent $72
Adding Input to Expenses Calculator
expenses.py
total = 0
expenses = []
num_expenses = int(input("Enter # of expenses:"))
Adding Input to Expenses Calculator
expenses.py
> python3 expenses.py
total = 0 Enter # of expenses:5
expenses = [] Enter an expense:5
num_expenses = int(input("Enter # of expenses:")) Enter an expense:20
for i in range(num_expenses): Enter an expense:12
expenses.append(float(input("Enter an expense:"))) Enter an expense:13
Enter an expense:8
total = sum(expenses) You spent $58
print("You spent $", total, sep='')