Class 21 — Wednesday, October 13
Look at the map
I say love is love — For aren’t we all just people — Living as we are
Look both ways
Agenda
- Introduce
dict
To do
- Examine artifacts
- Examine
dict
module documentation
- Examine
collections
epistle
- Examine
while
epistle
Examples
- Program romantic.py
- Program unromantic.py
- Program floradation.py
- Program even_odd.py
- Program good_doggie.py
Some data sets
Problem romantic.py
- Get a roman numeral and determine its integer equivalent
Some program runs
Enter Roman numeral: V
5
Enter Roman numeral: d
500
Enter Roman numeral: 0
Unknown
Problem unromantic.py
- Get a word and print its English equivalent
Some program runs
RecursionError: maximum recursion depth exceeded during compilation
Discussion
- Repeat the word carrot ten times out loud
- The human brain is great with associations; e.g., many of us associate apple with red, sky with blue, and programming with fun.
- A
dict
is Python's software equivalent of a collection of associations. In particular, adict
is an un-ordered collection of associations.
- The elements of a
dict
are called mappings. A mapping associates one object (called the key) with another object (called the value).
- The literal for an empty
dict
is{}
.
- A literal mapping is written using the
:
to separate the key with its value. For example, the below variableflora_to_color
is adict
that associates flora with colors.
flora_to_color = { 'spruce': 'green', 'apple': 'red', 'shamrock': 'green',
'banana': 'yellow', 'potato': 'brown', 'eggplant': 'purple' }
- The
len()
function works on adict
. For example,len(
flora_to_color
)
is 6, because the definition offlora_to_color
specified six mappings.
- The brackets
[]
operator in conjunction with assignment can be used to put a mapping into adict
. For example, the statement below adds the mapping'lemon'
to'yellow'
.
flora_to_color[ 'lemon' ] = 'yellow'
- The keys of a
dict
are always distinct. So, the following statement
flora_to_color[ 'potato' ] = 'golden'
would cause
flora_to_color
to lose its association of mappingpotato
tobrown
— its association with'potato'
is now only togolden
.
- As our
flora_to_color
example shows, the values of adict
are not necessarily unique.
- Python
dict
's have functionskeys()
andvalues()
for getting a hold of keys and values.
the_keys = flora_to_color.keys()
the_values = flora_to_color.values()
While there are never any duplicates in the keys, depending upon the dictionary there may be duplicates in the values.
- Other information about
dict
objects are listed below. In the below, assume thatd
is adict
.
d.get(k)
returns the value that keyk
maps to ind
. If there is no such value, returnsNone
.
d[k]
returns the value that keyk
maps to ind
. If there is no such value, an exception (error) occurs.
(k in d)
indicates whetherk
is a key value ind
.
(k not in d)
indicates whetherk
is not a key value ind
.
d.clear()
removes all mappings ind
.
del d[k]
removesk
’s mapping ind
.
- Information on a
dict
is available in the module documentation section of the website.
- Additional information on collections is in general is available in the collections epistile.
Problem even_odd.py
- Introduce the Python
dict
data structure
Some program runs
Enter a number: 3
3 odd
Enter even or odd: even
a number is even if its remainder divided by 2 is 0
Enter a number: 6
6 even
Enter even or odd: odd
a number is odd if its remainder divided by 2 is 1
Problem good_doggie.py
- For a series of dog information requests, the program reports what it knows about the dog.
- Its dog information data source is located at URL
- Brainstorming
- How should we store the dog information?
- How do we get and store the input?
- How many times do we set up the dog information
- What times of loops do we need?
- Sequential
- Nested
- Mixture of nested and sequential
Where am I