Programming‎ > ‎Python‎ > ‎

08-Lists



A List is a kind of Collection


• A collection allows us to put many values in a single “variable”
• A collection is nice because we can carry all many values around in one convenient package.

friends = [ 'Joseph', 'Glenn', 'Sally' ]
carryon = [ 'socks', 'shirt', 'perfume' ]


List Constants


• List constants are surrounded by square brackets and the elements in the list are separated by commas
• A list element can be any Python object - even another list
• A list can be empty

>>> print [1, 24, 76]
[1, 24, 76]
>>> print ['red', 'yellow', 'blue']
['red', 'yellow', 'blue']
>>> print ['red', 24, 98.6]
['red', 24, 98.599999999999994]
>>> print [ 1, [5, 6], 7]
[1, [5, 6], 7]
>>> print []
[]


Lists and definite loops - best pals


friends = ['Joseph', 'Glenn', 'Sally']
for friend in friends :
    print 'Happy New Year:', friend
print 'Done!'


Looking Inside Lists


Just like strings, we can get at any single element in a list using an index specified in square brackets

>>> friends = [ 'Joseph', 'Glenn', 'Sally' ]
>>> print friends[1]
Glenn


Lists are Mutable


• Strings are “immutable” - we cannot change the contents of a string - we must make a new string to make any change
• Lists are “mutable’ - we can change an element of a list using the index operator

>>> fruit = 'Banana'
>>> fruit[0] = 'b'
Traceback
TypeError: 'str' object does not support item assignment

>>> x = fruit.lower()
>>> print x
banana

>>> lotto = [2, 14, 26, 41, 63]
>>> print lotto
[2, 14, 26, 41, 63]

>>> lotto[2] = 28
>>> print lotto
[2, 14, 28, 41, 63]


How Long is a List?


• The len() function takes a list as a parameter and returns the number of elements in the list
• Actually len() tells us the number of elements of any set or sequence (such as a string...)

>>> greet = 'Hello Bob'
>>> print len(greet)
9

>>> x = [ 1, 2, 'joe', 99]
>>> print len(x)
4
>>>


Using the range function


• The range function returns a list of numbers that range from zero to one less than the parameter
• We can construct an index loop using for and an integer iterator

>>> print range(4)
[0, 1, 2, 3]

>>> friends = ['Joseph', 'Glenn', 'Sally']
>>> print len(friends)
3

>>> print range(len(friends))
[0, 1, 2]
>>>


A tale of two loops...


friends = ['Joseph', 'Glenn', 'Sally']
for friend in friends :
    print 'Happy New Year:', friend

for i in range(len(friends)) :
    friend = friends[i]
    print 'Happy New Year:', friend 

Happy New Year: Joseph
Happy New Year: Glenn
Happy New Year: Sally


Concatenating lists using +


• We can create a new list by adding two existing lists together

>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> c = a + b
>>> print c
[1, 2, 3, 4, 5, 6]

>>> print a
[1, 2, 3]


Lists can be sliced using :


>>> t = [9, 41, 12, 3, 74, 15]
>>> t[1:3]
[41,12]

>>> t[:4]
[9, 41, 12, 3]

>>> t[3:]
[3, 74, 15]

>>> t[:]
[9, 41, 12, 3, 74, 15]

t = [9, 41, 12, 3, 74, 15]
print(t[0])
9

print(t[-1])
15 

print(t[-4:-2])
[12, 3]


Remember: Just like in strings, the second number is “up to but not including”


List Methods


>>> x = list()
>>> type(x)
<type 'list'>

>>> dir(x)
['append', 'count', 'extend', 'index', 'insert',
'pop', 'remove', 'reverse', 'sort']


Building a List from Scratch


• We can create an empty list and then add elements using the append method
• The list stays in order and new elements are added at the end of the list

>>> stuff = list()
>>> stuff.append('book')
>>> stuff.append(99)
>>> print stuff
['book', 99]

>>> stuff.append('cookie')
>>> print stuff
['book', 99, 'cookie']


Is Something in a List?


• Python provides two operators that let you check if an item is in a list
• These are logical operators that return True or False
• They do not modify the list

>>> some = [1, 9, 21, 10, 16]
>>> 9 in some
True

>>> 15 in some
False

>>> 20 not in some
True
>>>


A List is an Ordered Sequence


• A list can hold many items and keeps those items in the order until we do something to change the order
• A list can be sorted (i.e., change its order)
• The sort method (unlike in strings) means “sort yourself”

>>> friends = [ 'Joseph', 'Glenn', 'Sally' ]
>>> friends.sort()
>>> print friends
['Glenn', 'Joseph', 'Sally']

>>> print friends[1]
Joseph
>>>


Built-in Functions and Lists


• There are a number of functions built into Python that take lists as parameters
• Remember the loops we built? These are much simpler.

>>> nums = [3, 41, 12, 9, 74, 15]
>>> print len(nums)
6
>>> print max(nums)
74
>>> print min(nums)
3
>>> print sum(nums)
154
>>> print sum(nums)/len(nums)
25


Best Friends: Strings and Lists


>>> abc = 'With three words'
>>> stuff = abc.split()
>>> print stuff
['With', 'three', 'words']

>>> print len(stuff)
3

>>> print stuff[0]
With

>>> print stuff
['With', 'three', 'words']

>>> for w in stuff :
... print w
...
With
Three
Words
>>>

 Split breaks a string into parts and produces a list of strings. We think of these as words. We can access a particular word or loop through all the words.
● When you do not specify a delimiter, multiple spaces are treated like one delimiter
● You can specify what delimiter character to use in the splitting





Comments