English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Dans cet article, vous allez apprendre tout sur le dictionnaire Python ; comment créer, accéder, ajouter et supprimer des éléments, ainsi que diverses méthodes intégrées.
Un dictionnaire Python est un ensemble d'éléments non ordonnés. D'autres types de données complexes n'ont que des valeurs comme éléments, tandis que le dictionnaire a des paires clé:valeur (key:value).
Le dictionnaire est optimisé pour récupérer les valeurs lorsque la clé est connue.
La création d'un dictionnaire est aussi simple que de placer des éléments dans des accolades {} séparés par des virgules.
Un élément a une clé et une valeur correspondante, représentée par un couple, clé : valeur.
Bien que la valeur puisse être de tout type de données et peut être répétée, mais la clé doit être de type immuable (ayant des éléments immuables)Chaîne,Numérique或Tupple) et doit être unique.
# Dictionnaire vide my_dict = {} # Dictionnaire avec des clés entières my_dict = {1: 'apple', 2: 'ball'} # Dictionnaire de clés mélangées my_dict = {'name': 'John', 1: [2, 4, 3}] # Utilisation de dict() my_dict = dict({1:'apple', 2:'ball'}) # Chaque élément est une séquence de paires my_dict = dict([(1,'apple'), (2,'ball')])
Comme vous pouvez le voir ci-dessus, nous pouvons également créer un dictionnaire en utilisant la fonction intégrée dict().
Bien que l'index soit utilisé avec d'autres types de conteneurs pour accéder aux valeurs, le dictionnaire utilise les clés. Les clés peuvent être utilisées à l'intérieur des crochets ou avec la méthode get().
La différence avec get() est que, s'il ne trouve pas la clé, il retourne None plutôt qu'un erreur KeyError.
Lors de l'exécution de ce programme, la sortie est :
Jack 26
Le dictionnaire est modifiable. Nous pouvons utiliser l'opérateur d'affectation pour ajouter de nouveaux éléments ou modifier la valeur d'un élément existant.
Si la clé existe déjà, la valeur est mise à jour, sinon un nouveau couple clé:valeur est ajouté au dictionnaire.
Lors de l'exécution de ce programme, la sortie est :
{'name': 'Jack', 'age': 27} {'name': 'Jack', 'age': 27, 'address': 'Downtown'}
Nous pouvons utiliser la méthode pop() pour supprimer un élément spécifique du dictionnaire. Cette méthode utilise la clé fournie pour supprimer l'élément et retourne la valeur.
La méthode popitem() peut être utilisée pour supprimer et retourner un élément quelconque (clé, valeur) du dictionnaire. La méthode clear() peut supprimer tous les éléments en une seule fois.
Nous pouvons également utiliser le mot-clé del pour supprimer un élément unique ou même le dictionnaire entier.
Lors de l'exécution de ce programme, la sortie est :
16 {1: 1, 2: 4, 3: 9, 5: 25} (1, 1) {2: 4, 3: 9, 5: 25} {2: 4, 3: 9} {}
Voici une liste des méthodes disponibles pour le dictionnaire. Certaines ont déjà été utilisées dans les exemples ci-dessus.
Méthode | Description |
---|---|
clear() | Supprime tous les éléments du dictionnaire. |
copy() | Retourne une copie superficielle du dictionnaire. |
fromkeys(seq[v]) | Utilisé pour créer un nouveau dictionnaire où les éléments de la séquence seq sont utilisés comme clés et v est la valeur initiale pour toutes les clés du dictionnaire. |
get(key[d]) | Retourne la valeur de la clé. Si la clé n'existe pas, retourne d (par défaut None). |
items() | Retourne un tableau d'arrays itérables (clé, valeur). |
keys() | Retourne tous les clés du dictionnaire. |
pop(key[d]) | Supprime l'élément portant la clé et retourne sa valeur. Si la clé n'est pas trouvée, retourne d. Si d n'est pas fourni et que la clé n'est pas trouvée, l'erreur KeyError est levée. |
popitem() | 删除并返回任意项(键,值)。如果字典为空则引发KeyError。 |
setdefault(key[d]) | 返回指定键的值,如果指定键的值不在字典中,返回指定值,默认为 None。 |
update([other]) | 使用来自other的键/值对更新字典,覆盖现有键。 |
values() | 以列表形式返回字典中的所有值。 |
以下是使用这些方法的一些示例。
marks = {}.fromkeys(['Math','English','Science'], 0) # 输出: {'English': 0, 'Math': 0, 'Science': 0} print(marks) for item in marks.items(): print(item) # 输出: ['English', 'Math', 'Science'] list(sorted(marks.keys()))
字典理解是从Python中的迭代器创建新字典的一种优雅简洁的方法。
字典理解包含一个表达式对(键:值),后跟花括号{}中的for语句。
这是制作字典的示例,其中每个项目都是一对数字及其平方。
squares = {x: x*x for x in range(6)} # 输出: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25} print(squares)
此代码等效于
squares = {} for x in range(6): squares[x] = x*x
可选if语句可以过滤出项以形成新字典。
这是一些仅包含奇数项目的字典示例。
odd_squares = {x: x*x for x in range(11) if x%2 == 1} # 输出: {1: 1, 3: 9, 5: 25, 7: 49, 9: 81} print(odd_squares)
要了解更多信息,请访问Python dictionary comprehension。
我们可以使用关键字来测试键是否在字典中in。请注意,成员资格测试仅适用于键,而不适用于值。
squares = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81} # 输出: True print(1 in squares) # 输出: True print(2 not in squares) # 仅对键而不是值进行成员资格测试 # 输出: False print(49 in squares)
使用for循环,我们可以遍历字典中的每个键。
squares = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81} for i in squares: print(squares[i])
Built-in functions such as all(), any(), len(), cmp(), sort(), etc. are usually used with dictionary to perform different tasks.
Function | Description |
---|---|
all() | If all keys of the dictionary are true (or the dictionary is empty), return True. |
any() | If any key of the dictionary is true, return True. If the dictionary is empty, return False. |
len() | Return the length (number of items) of the dictionary. |
cmp() | Compare items of two dictionaries. |
sorted() | Return the newly sorted key list of the dictionary. |
Here are some examples of using built-in functions to process dictionaries.
squares = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81} # Output: 5 print(len(squares)) # Output: [1, 3, 5, 7, 9] print(sorted(squares))