Presentation is loading. Please wait.

Presentation is loading. Please wait.

Python Mini-Course University of Oklahoma Department of Psychology Lesson 16 Dictionaries 5/10/09 Python Mini-Course: Lesson 16 1.

Similar presentations


Presentation on theme: "Python Mini-Course University of Oklahoma Department of Psychology Lesson 16 Dictionaries 5/10/09 Python Mini-Course: Lesson 16 1."— Presentation transcript:

1 Python Mini-Course University of Oklahoma Department of Psychology Lesson 16 Dictionaries 5/10/09 Python Mini-Course: Lesson 16 1

2 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/09 Python Mini-Course: Lesson 16 2

3 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 5/10/09 Python Mini-Course: Lesson 16 3

4 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 5/10/09 Python Mini-Course: Lesson 16 4

5 Creating a dictionary eng2sp = dict() print eng2sp eng2sp['one'] = 'uno' print eng2sp eng2sp['two'] = 'dos' print eng2sp 5/10/09 Python Mini-Course: Lesson 16 5

6 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/09 Python Mini-Course: Lesson 16 6

7 Dictionary indexing print eng2sp['three'] print eng2sp['five'] * If the index is not a key in the dictionary, Python raises an exception 5/10/09 Python Mini-Course: Lesson 16 7

8 Dictionary indexing if 'five' in eng2sp: print eng2sp['five'] print eng2sp.get('five') 5/10/09 Python Mini-Course: Lesson 16 8

9 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/09 Python Mini-Course: Lesson 16 9

10 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/09 Python Mini-Course: Lesson 16 10

11 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/09 Python Mini-Course: Lesson 16 11

12 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/09 Python Mini-Course: Lesson 16 12

13 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/09 Python Mini-Course: Lesson 16 13

14 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/09 Python Mini-Course: Lesson 16 14

15 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/09 Python Mini-Course: Lesson 16 15

16 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/09 Python Mini-Course: Lesson 16 16

17 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/09 Python Mini-Course: Lesson 16 17

18 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/09 Python Mini-Course: Lesson 16 18

19 Next session Handling program errors (exceptions) Reading and writing data files Sharing data with other programs (Excel, SAS, etc.) 5/10/09 Python Mini-Course: Lesson 16 19

20 Suggested exercises Exercise 12.4 The Case Study in chapter 13 5/10/09 Python Mini-Course: Lesson 16 20


Download ppt "Python Mini-Course University of Oklahoma Department of Psychology Lesson 16 Dictionaries 5/10/09 Python Mini-Course: Lesson 16 1."

Similar presentations


Ads by Google