Home  >  Article  >  Backend Development  >  A refreshing review of Python dictionary basics

A refreshing review of Python dictionary basics

王林
王林Original
2023-09-03 20:09:021360browse

Python 字典基础知识的令人耳目一新的回顾

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.

What is a dictionary?

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:

  1. They are unordered collections (different from ordered lists).
  2. The
  3. key is used to access the item rather than the location ( i.e. index).

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.

Let’s create an English-French 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.

Make things more interesting

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.

More dictionary operations

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.

How many entries are there in the dictionary?

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.

Delete key

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.

Does the key exist in the dictionary?

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:

"Gate" in

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'

Create a copy of the dictionary

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()

Nested Dictionary

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'}}

##So if you enter

student['ID'] you should get:

{'name': 'Abder-Rahman', 'number': '1234'}

Iteration Dictionary

Let’s go back to the

english_french dictionary. You can iterate over the items of a dictionary in several ways:

Words in english_french:

Print word

The result of this statement is as follows:

car

pen

paper

door

table

Please note that the order of the

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

Please note that we use the

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

The results in this example should look like this:

voiture

stylo

papier

porte

table

Alternative ways to create a dictionary

There are other ways to create a dictionary in Python using the

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn