Python Mini-Course University of Oklahoma Department of Psychology Lesson 16 Dictionaries 5/10/09...
-
Upload
rosaline-hicks -
Category
Documents
-
view
214 -
download
0
Transcript of Python Mini-Course University of Oklahoma Department of Psychology Lesson 16 Dictionaries 5/10/09...
Python Mini-CourseUniversity of Oklahoma
Department of Psychology
Lesson 16Dictionaries
5/10/09Python Mini-Course: Lesson 161
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
5/10/09Python Mini-Course: Lesson 162
The dictionary data structure
In Python, a dictionary is mapping between a set of indices (keys) and a set of valuesThe items in a dictionary are key-value pairs
5/10/09Python Mini-Course: Lesson 163
The dictionary data structure
Keys can be any Python data typeBecause keys are used for indexing, they should be immutable
Values can be any Python data typeValues can be mutable or immutable
5/10/09Python Mini-Course: Lesson 164
Creating a dictionary
eng2sp = dict()
print eng2sp
eng2sp['one'] = 'uno'
print eng2sp
eng2sp['two'] = 'dos'
print eng2sp
5/10/09Python Mini-Course: Lesson 165
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
5/10/09Python Mini-Course: Lesson 166
Dictionary indexing
print eng2sp['three']
print eng2sp['five']
* If the index is not a key in the dictionary, Python raises an exception
5/10/09Python Mini-Course: Lesson 167
Dictionary indexing
if 'five' in eng2sp: print eng2sp['five']
print eng2sp.get('five')
5/10/09Python Mini-Course: Lesson 168
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
5/10/09Python Mini-Course: Lesson 169
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()
5/10/09Python Mini-Course: Lesson 1610
Keys and values
The items method returns a list of tuple pairs of the key-value pairs in a dictionary
print eng2sp.items()
5/10/09Python Mini-Course: Lesson 1611
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
5/10/09Python Mini-Course: Lesson 1612
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)
5/10/09Python Mini-Course: Lesson 1613
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)
5/10/09Python Mini-Course: Lesson 1614
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)
5/10/09Python Mini-Course: Lesson 1615
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
5/10/09Python Mini-Course: Lesson 1616
Using lists as values: invert.py
Add the following code to histogram.py:
hist = histogram('parrot')
print hist
inverted = invert_dict(hist)
print inverted
5/10/09Python Mini-Course: Lesson 1617
Using tuples as keys: troupe.py
troupe = {('Cleese', 'John'): [1,2,3],
('Chapman', 'Graham'): [4,5,6],
('Idle', 'Eric'): [7,8,9],
('Jones', 'Terry'): [10,11,12],
('Gilliam', 'Terry'): [13,14,15,16,17,18],
('Palin', 'Michael'): [19,20]}
for last, first in troupe:
print first, last, troupe[last, first]
5/10/09Python Mini-Course: Lesson 1618
Next session
Handling program errors (exceptions)
Reading and writing data filesSharing data with other programs (Excel, SAS, etc.)
5/10/09Python Mini-Course: Lesson 1619