In a previous tutorial, I discussed a very versatile and flexible object type in Python, the list. In this article, I'll continue my review of another flexible Python object type called a dictionary (also known as an associative array or hash). Like lists, dictionaries are an important concept to master in order to move forward in your Python journey.
If you have read the List article, you will easily understand the concept of dictionary. They are very similar to lists, but have two main differences:
Each key in the dictionary has a value, which can be any Python object type. That is, a dictionary can be viewed as key-value pairs. However, please note that the key cannot be of type List or Dictionary.
As we saw in the previous section, a dictionary is just an unordered set of key-value pairs. Let's use this concept to create our first example: an English-French dictionary. The dictionary can be created as follows:
english_french = {'paper':'papier', 'pen':'stylo', 'car':'voiture', 'table':'table','door':' porte'}
Dictionary english_french
Contains five English words, set to the key , and their French meanings set to the value .
Suppose we want to know how to say pen
in French. We just need to do the following:
english_french['pen']
where you will get stylo
as the return value.
Suppose we have a french_spanish
dictionary whose words are the same as those in the english_french
dictionary, like this:
french_spanish = {'papier':'papel', 'stylo':'pluma', 'voiture':'coche', 'table':'mesa', 'porte':' puerta'}
Well, you're asked how to say door
in Spanish, and you don't have an English-Spanish dictionary handy! But, don't worry, there is a solution. Look up the word in your english_french
dictionary, then use the results to look up the french_spanish
dictionary. do you understand? Let's see how to do this in Python:
french_spanish[english_french['door']]
The result should be puerta
. It is not good? Even though you don't have an English-Spanish dictionary, you just got the Spanish word for door
.
In the previous example, we saw how to create a dictionary and access the items in the dictionary. Let's see what more we can do with dictionaries. I will use the english_french
dictionary in the example below.
In other words, the purpose of this operation is to return the number of key-value pairs in the Dictionary. This can be performed using the len()
operator as follows:
len(english_french)
You should return 5
.
Deletion of items in the dictionary is performed via the key . For example, let's say we want to remove the word (key) door
from the dictionary. This can be done simply as follows:
del english_french['door']
This will delete the key door
and its value porte
.
In the previous section, we removed the key door
from the dictionary. If we want to check if door
still exists in the dictionary, we enter:
english_french
should return False
.
So, what do you think the following statement will return? Go ahead and give it a try (note not
).
'door' is not in english_french
What happens if we try to access a key that does not exist in the dictionary? Say english_french['door']
. In this case, you will receive an error similar to the following:
Traceback (last call last):
File "dictionary.py", line 7, located in <module></module>
Print english_french['door']
KeyError: 'door'
You may need a copy
of the english_french dictionary and assign it to another dictionary. This can be done simply using the copy()
function as follows:
new_english_french = english_french.copy()
As we mentioned above, the values in a dictionary can be of any type, including dictionaries. This is called nesting. Examples are as follows:
Student = {'ID':{'name':'Abder-Rahman', 'number':'1234'}}
student['ID'] you should get:
{'name': 'Abder-Rahman', 'number': '1234'}
english_french dictionary. You can iterate over the items of a dictionary in several ways:
Words in english_french:
Print word
car
pen
paper
door
table
keys in the result is different from the order in the english_french dictionary. You can now see why I said that dictionaries are treated as unordered collections.
Another way to iterate over
keys is as follows:
For words in english_french.iterkeys():
Print word
iterkeys() function. A similar function that can be used to iterate over values, namely
itervalues(), looks like this:
Meaning used in english_french.itervalues():
Print meaning
voiture
stylo
papier
porte
table
Alternative ways to create a dictionary
dict constructor. Some examples of using
dict to create the same dictionary
ID are as follows:
ID = dict(name = 'Abder-Rahman', number = 1234)
ID = dict([('name','Abder-Rahman'),('number',1234)])
ID = dict(zip(['name','number'],['Abder-Rahman',1234])) # Keys and values as lists
You can do more with dictionaries. Check out the Python documentation for more information.
The above is the detailed content of A refreshing review of Python dictionary basics. For more information, please follow other related articles on the PHP Chinese website!