首页 > 代码库 > Dictionaries and tuples

Dictionaries and tuples

Dictionaries have a method called items that returns a list of tuples, where each tuple is a key-value pair. As you should expect from a dictionary, the items are in no particular order. Conversely, you can use a list of tuples to initialize a new dictionary:

                       

Combining this feature with zip yields a concise way to create a dictionary:

 

The dictionary method update also takes a list of tuples and adds them, as key-value pairs, to an existing dictionary.

 

Combining items, tuples assignment and for, you get the idiom for traversing the keys and values of a dictionary:

 

It is common to use tuples as keys in dictionaries (primary because you can’t use lists). For examples, a telephone directory might map from last-name, first-name pairs to telephone numbers. Assuming that we have defined last, first and number, we could write:

directory[last,first] = number

The expression in brackets is a tuple. We could use tuple assignment to traverse this dictionary.

for last, first in directory:          print first, last, directory[last,first]

This loop traverse the keys in directory, which are tuples. It assigns the elements of each tuple to last and first, then prints the name and corresponding telephone number. There are two ways to represent tuples in a state diagram. The more detailed version shows the indices and elements just as they appear in a list. For example, the tuple (‘Cleese’, ‘John’) would appear:

 

But in a larger diagram you might want to leave out the details. For example, a diagram of the telephone directory might appear:

 

Here the tuples are shown using Python syntax as a graphical shorthand.

 

from Thinking in Python