Dictionaries - The University of Oklahoma
Download
Report
Transcript Dictionaries - The University of Oklahoma
Lesson 16
Dictionaries
Python Mini-Course
University of Oklahoma
Department of Psychology
1
Python Mini-Course: Lesson 16
5/10/09
Lesson objectives
1. Describe the characteristics of the
dictionary data structure in Python
2. Perform basic operations with
dictionaries including creation,
copying, updating, and traversing
3. Use dictionaries in functions
2
Python Mini-Course: Lesson 16
5/10/09
The dictionary data structure
In Python, a dictionary is
mapping between a set of indices
(keys) and a set of values
The items in a dictionary are key-
value pairs
3
Python Mini-Course: Lesson 16
5/10/09
The dictionary data structure
Keys can be any Python data type
Because keys are used for indexing,
they should be immutable
Values can be any Python data
type
Values can be mutable or immutable
4
Python Mini-Course: Lesson 16
5/10/09
Creating a dictionary
eng2sp = dict()
print eng2sp
eng2sp['one'] = 'uno'
print eng2sp
eng2sp['two'] = 'dos'
print eng2sp
5
Python Mini-Course: Lesson 16
5/10/09
Creating a dictionary
eng2sp = {'one': 'uno', 'two': 'dos',
'three': 'tres'}
print eng2sp
• In general, the order of items in a
dictionary is unpredictable
• Dictionaries are indexed by keys, not
integers
6
Python Mini-Course: Lesson 16
5/10/09
Dictionary indexing
print eng2sp['three']
print eng2sp['five']
* If the index is not a key in the
dictionary, Python raises an exception
7
Python Mini-Course: Lesson 16
5/10/09
Dictionary indexing
if 'five' in eng2sp:
print eng2sp['five']
print eng2sp.get('five')
8
Python Mini-Course: Lesson 16
5/10/09
The in operator
• Note that the in operator works differently
for dictionaries than for other sequences
• For offset indexed sequences (strings, lists,
tuples), x in y checks to see whether x is an
item in the sequence
• For dictionaries, x in y checks to see whether
x is a key in the dictionary
9
Python Mini-Course: Lesson 16
5/10/09
Keys and values
The keys method returns a list of the
keys in a dictionary
print eng2sp.keys()
The values method returns a list of
the values
print eng2sp.values()
10
Python Mini-Course: Lesson 16
5/10/09
Keys and values
The items method returns a list of
tuple pairs of the key-value pairs in a
dictionary
print eng2sp.items()
11
Python Mini-Course: Lesson 16
5/10/09
Example: histogram.py
def histogram(seq):
d = dict()
for element in seq:
if element not in d:
d[element] = 1
else:
d[element] += 1
return d
h = histogram('brontosaurus')
print h
12
Python Mini-Course: Lesson 16
5/10/09
Example: histogram2.py
Add the following code to histogram.py:
def print_hist(hist):
for key in hist:
print key, hist[key]
h = histogram('brontosaurus')
print_hist(h)
13
Python Mini-Course: Lesson 16
5/10/09
Example: histogram2.py
Change the print_hist function:
def print_hist(hist):
for key, value in hist:
print key, value
h = histogram('brontosaurus')
print_hist(h)
14
Python Mini-Course: Lesson 16
5/10/09
Sorting the keys
Change the print_hist function:
def print_hist(hist):
keys = hist.keys()
keys.sort()
for key in keys:
print key, hist[key]
h = histogram('brontosaurus')
print_hist(h)
15
Python Mini-Course: Lesson 16
5/10/09
Using lists as values: invert.py
Add the following code to histogram.py:
def invert_dict(d):
inv = dict()
for key in d:
val = d[key]
if val not in inv:
inv[val] = [key]
else:
inv[val].append(key)
return inv
16
Python Mini-Course: Lesson 16
5/10/09
Using lists as values: invert.py
Add the following code to histogram.py:
hist = histogram('parrot')
print hist
inverted = invert_dict(hist)
print inverted
17
Python Mini-Course: Lesson 16
5/10/09
Using tuples as keys: troupe.py
troupe = {('Cleese', 'John'):
('Chapman', 'Graham'):
('Idle', 'Eric'):
('Jones', 'Terry'):
('Gilliam', 'Terry'):
('Palin', 'Michael'):
[1,2,3],
[4,5,6],
[7,8,9],
[10,11,12],
[13,14,15,16,17,18],
[19,20]}
for last, first in troupe:
print first, last, troupe[last, first]
18
Python Mini-Course: Lesson 16
5/10/09
Next session
Handling program errors
(exceptions)
Reading and writing data files
Sharing data with other programs
(Excel, SAS, etc.)
19
Python Mini-Course: Lesson 16
5/10/09
Suggested exercises
Exercise 12.4
The Case Study in chapter 13
20
Python Mini-Course: Lesson 16
5/10/09