The document provides an overview of Python lists, including how to create and access list elements using indexes, loop through lists, modify lists by adding, removing, or changing elements, and several common list methods. Key points include: lists allow storing multiple values in a single variable; values can be accessed by index with list[index]; common operations include append() to add elements, sort() and reverse() modify the list in-place, and in tests for membership in a list.
10. Index from 0, not 1
Reasons made sense for C in 1970...
Python Lists
11. Index from 0, not 1
Reasons made sense for C in 1970...
It's an error to try to access out of range
Python Lists
12. Index from 0, not 1
Reasons made sense for C in 1970...
It's an error to try to access out of range
gases = ['He', 'Ne', 'Ar', 'Kr']
print gases[4]
IndexError: list index out of range
Python Lists
14. Use len(list) to get length of list
gases = ['He', 'Ne', 'Ar', 'Kr']
print len(gases)
4
Python Lists
15. Use len(list) to get length of list
gases = ['He', 'Ne', 'Ar', 'Kr']
print len(gases)
4
Returns 0 for the empty list
etheric = []
print len(etheric)
0
Python Lists
17. Some negative indices work
values[-1] is last element, values[-2] next-to-last, ...
Python Lists
18. Some negative indices work
values[-1] is last element, values[-2] next-to-last, ...
gases = ['He', 'Ne', 'Ar', 'Kr']
Python Lists
19. Some negative indices work
values[-1] is last element, values[-2] next-to-last, ...
gases = ['He', 'Ne', 'Ar', 'Kr']
print gases[-1], gases[-4]
Kr He
Python Lists
20. Some negative indices work
values[-1] is last element, values[-2] next-to-last, ...
gases = ['He', 'Ne', 'Ar', 'Kr']
print gases[-1], gases[-4]
Kr He
values[-1] is much nicer than values[len(values)-Python Lists
21. Some negative indices work
values[-1] is last element, values[-2] next-to-last, ...
gases = ['He', 'Ne', 'Ar', 'Kr']
print gases[-1], gases[-4]
Kr He
values[-1] is much nicer than values[len(values)-less error prone
Python Lists
22. Mutable : can change it after it is created
Python Lists
23. Mutable : can change it after it is created
gases = ['He', 'Ne', 'Ar', 'K'] # last entry misspelled
Python Lists
24. Mutable : can change it after it is created
gases = ['He', 'Ne', 'Ar', 'K'] # last entry misspelled
gases[3] = 'Kr'
Python Lists
25. Mutable : can change it after it is created
gases = ['He', 'Ne', 'Ar', 'K'] # last entry misspelled
gases[3] = 'Kr'
print gases
['He', 'Ne', 'Ar', 'Kr']
Python Lists
26. Mutable : can change it after it is created
gases = ['He', 'Ne', 'Ar', 'K'] # last entry misspelled
gases[3] = 'Kr'
print gases
['He', 'Ne', 'Ar', 'Kr']
Location must exist before assignment
Python Lists
27. Mutable : can change it after it is created
gases = ['He', 'Ne', 'Ar', 'K'] # last entry misspelled
gases[3] = 'Kr'
print gases
['He', 'Ne', 'Ar', 'Kr']
Location must exist before assignment
gases = ['He', 'Ne', 'Ar', 'Kr']
Python Lists
28. Mutable : can change it after it is created
gases = ['He', 'Ne', 'Ar', 'K'] # last entry misspelled
gases[3] = 'Kr'
print gases
['He', 'Ne', 'Ar', 'Kr']
Location must exist before assignment
gases = ['He', 'Ne', 'Ar', 'Kr']
gases[4] = 'Xe'
IndexError: list assignment index out of range
Python Lists
37. Loop over elements to "do all"
Use while to step through all possible indices
Python Lists
38. Loop over elements to "do all"
Use while to step through all possible indices
gases = ['He', 'Ne', 'Ar', 'Kr']
i = 0
while i < len(gases):
print gases[i]
i += 1
Python Lists
39. Loop over elements to "do all"
Use while to step through all possible indices
gases = ['He', 'Ne', 'Ar', 'Kr']
i = 0
while i < len(gases):
print gases[i]
i += 1
First legal index
Python Lists
40. Loop over elements to "do all"
Use while to step through all possible indices
gases = ['He', 'Ne', 'Ar', 'Kr']
i = 0
while i < len(gases):
print gases[i]
i += 1 Next index
Python Lists
41. Loop over elements to "do all"
Use while to step through all possible indices
gases = ['He', 'Ne', 'Ar', 'Kr']
i = 0
while i < len(gases):
print gases[i]
i += 1
Defines set of legal indices
Python Lists
42. Loop over elements to "do all"
Use while to step through all possible indices
gases = ['He', 'Ne', 'Ar', 'Kr']
i = 0
while i < len(gases):
print gases[i]
i += 1
He
Ne
Ar
Kr
Python Lists
43. Loop over elements to "do all"
Use while to step through all possible indices
gases = ['He', 'Ne', 'Ar', 'Kr']
i = 0
while i < len(gases):
print gases[i]
i += 1
He
Ne
Ar
Kr
Tedious to type in over and over again
Python Lists
44. Loop over elements to "do all"
Use while to step through all possible indices
gases = ['He', 'Ne', 'Ar', 'Kr']
i = 0
while i < len(gases):
print gases[i]
i += 1
He
Ne
Ar
Kr
Tedious to type in over and over again
And it's easy to forget the "+= 1" at the end
Python Lists
45. Use a for loop to access each value in turn
Python Lists
46. Use a for loop to access each value in turn
gases = ['He', 'Ne', 'Ar', 'Kr']
for gas in gases:
print gas
He
Ne
Ar
Kr
Python Lists
47. Use a for loop to access each value in turn
gases = ['He', 'Ne', 'Ar', 'Kr']
for gas in gases:
print gas
He
Ne
Ar
Kr
Loop variable assigned each value in turn
Python Lists
48. Use a for loop to access each value in turn
gases = ['He', 'Ne', 'Ar', 'Kr']
for gas in gases:
print gas
He
Ne
Ar
Kr
Loop variable assigned each value in turn
Not each index
Python Lists
49. Use a for loop to access each value in turn
gases = ['He', 'Ne', 'Ar', 'Kr']
for gas in gases:
print gas
He
Ne
Ar
Kr
Loop variable assigned each value in turn
Not each index
Because that's the most common case
Python Lists
51. Can delete entries entirely (shortens the list)
gases = ['He', 'Ne', 'Ar', 'Kr']
Python Lists
52. Can delete entries entirely (shortens the list)
gases = ['He', 'Ne', 'Ar', 'Kr']
del gases[0]
Python Lists
53. Can delete entries entirely (shortens the list)
gases = ['He', 'Ne', 'Ar', 'Kr']
del gases[0]
print gases
['Ne', 'Ar', 'Kr']
Python Lists
54. Can delete entries entirely (shortens the list)
gases = ['He', 'Ne', 'Ar', 'Kr']
del gases[0]
print gases
['Ne', 'Ar', 'Kr']
del gases[2]
Python Lists
55. Can delete entries entirely (shortens the list)
gases = ['He', 'Ne', 'Ar', 'Kr']
del gases[0]
print gases
['Ne', 'Ar', 'Kr']
del gases[2]
print gases
['Ne', 'Ar']
Python Lists
56. Can delete entries entirely (shortens the list)
gases = ['He', 'Ne', 'Ar', 'Kr']
del gases[0]
print gases
['Ne', 'Ar', 'Kr']
del gases[2]
print gases
['Ne', 'Ar']
Yes, deleting an index that doesn't exist is an error
Python Lists
59. Appending values to a list lengthens it
gases = []
gases.append('He')
Python Lists
60. Appending values to a list lengthens it
gases = []
gases.append('He')
gases.append('Ne')
Python Lists
61. Appending values to a list lengthens it
gases = []
gases.append('He')
gases.append('Ne')
gases.append('Ar')
Python Lists
62. Appending values to a list lengthens it
gases = []
gases.append('He')
gases.append('Ne')
gases.append('Ar')
print gases
['He', 'Ne', 'Ar']
Python Lists
63. Appending values to a list lengthens it
gases = []
gases.append('He')
gases.append('Ne')
gases.append('Ar')
print gases
['He', 'Ne', 'Ar']
Most operations on lists are methods
Python Lists
64. Appending values to a list lengthens it
gases = []
gases.append('He')
gases.append('Ne')
gases.append('Ar')
print gases
['He', 'Ne', 'Ar']
Most operations on lists are methods
A function that belongs to (and usually operates on)
specific data
Python Lists
65. Appending values to a list lengthens it
gases = []
gases.append('He')
gases.append('Ne')
gases.append('Ar')
print gases
['He', 'Ne', 'Ar']
Most operations on lists are methods
A function that belongs to (and usually operates on)
specific data
thing . method (args)
Python Lists
81. Use in to test for membership
gases = ['He', 'Ne', 'Ar', 'Kr']
Python Lists
82. Use in to test for membership
gases = ['He', 'Ne', 'Ar', 'Kr']
print 'He' in gases
True
Python Lists
83. Use in to test for membership
gases = ['He', 'Ne', 'Ar', 'Kr']
print 'He' in gases
True
if 'Pu' in gases:
print 'But plutonium is not a gas!'
else:
print 'The universe is well ordered.'
Python Lists
84. Use in to test for membership
gases = ['He', 'Ne', 'Ar', 'Kr']
print 'He' in gases
True
if 'Pu' in gases:
print 'But plutonium is not a gas!'
else:
print 'The universe is well ordered.'
The universe is well ordered.
Python Lists
85. Use range to construct lists of numbers
Python Lists
86. Use range to construct lists of numbers
print range(5)
[0, 1, 2, 3, 4]
Python Lists
87. Use range to construct lists of numbers
print range(5)
[0, 1, 2, 3, 4]
print range(2, 6)
[2, 3, 4, 5]
Python Lists
88. Use range to construct lists of numbers
print range(5)
[0, 1, 2, 3, 4]
print range(2, 6)
[2, 3, 4, 5]
print range(0, 10, 3)
[0, 3, 6, 9]
Python Lists
89. Use range to construct lists of numbers
print range(5)
[0, 1, 2, 3, 4]
print range(2, 6)
[2, 3, 4, 5]
print range(0, 10, 3)
[0, 3, 6, 9]
print range(10, 0)
[]
Python Lists
91. So range(len(list)) is all indices for the list
gases = ['He', 'Ne', 'Ar', 'Kr']
Python Lists
92. So range(len(list)) is all indices for the list
gases = ['He', 'Ne', 'Ar', 'Kr']
print len(gases)
4
Python Lists
93. So range(len(list)) is all indices for the list
gases = ['He', 'Ne', 'Ar', 'Kr']
print len(gases)
4 print range(len(gases))
[0, 1, 2, 3]
Python Lists
94. So range(len(list)) is all indices for the list
gases = ['He', 'Ne', 'Ar', 'Kr']
print len(gases)
4 print range(len(gases))
[0, 1, 2, 3]
for i in range(len(gases)):
print i, gases[i]
Python Lists
95. So range(len(list)) is all indices for the list
gases = ['He', 'Ne', 'Ar', 'Kr']
print len(gases)
4 print range(len(gases))
[0, 1, 2, 3]
for i in range(len(gases)):
print i, gases[i]
0 He
1 Ne
2 Ar
3 Kr
Python Lists
96. So range(len(list)) is all indices for the list
gases = ['He', 'Ne', 'Ar', 'Kr']
print len(gases)
4 print range(len(gases))
[0, 1, 2, 3]
for i in range(len(gases)):
print i, gases[i]
0 He
1 Ne
2 Ar
3 Kr
A very common idiom in Python
Python Lists