Description détaillée du dictionnaire Python dict
Le dictionnaire est implémenté selon le principe de la table de hachage. Chaque élément est une paire clé-valeur. Une valeur de hachage unique est calculée grâce à la clé de l'élément. Cette valeur de hachage détermine donc l'adresse de l'élément. pour garantir l'adresse de l'élément Non, il faut s'assurer que la clé de chaque élément et la valeur de hachage correspondante sont complètement différentes, et le type de clé doit être non modifiable, donc le type de clé peut être une valeur numérique, une constante de chaîne ou un tuple, mais ce ne peut pas être une liste car la liste peut être modifiée.
Le dictionnaire a donc les caractéristiques suivantes :
1. Les opérations de requête et d'insertion d'éléments sont très rapides, essentiellement à un niveau constant
2. beaucoup de mémoire, et utilise Méthode d'échange d'espace contre du temps
Initialisation du dictionnaire
Les méthodes suivantes sont équivalentes
d ={'a':1, 'b':2, 'c':3>
d=dict({'a':1, 'b':2, 'c':3})
d = dict([('a',1), ('b', 2), ('c', 3)])
d = dict(a=1, b=2 , c=3)
d = dict(zip(['a', 'b', 'c'], [1,2,3]))#Cette méthode peut également être utilisée pour combiner deux listes sont fusionnées dans un dictionnaire
Éléments attribués
1 e = d# Affectation de référence, e et d sont toujours les mêmes.
2. e = d.copy()# Affectation de valeur, les deux ne sont pas liés
3 d.copy() est une copie superficielle, lorsque la valeur de la valeur-clé. paire rencontre un dictionnaire ou une liste, le dictionnaire ou la liste changera également avec le changement d'origine. À ce moment-là, la valeur est équivalente à la référence ou au pointeur du tuple ou de la liste, pas elle-même. Le tuple ou la liste pointé est en fait le. celui d'origine. Cela peut être évité en utilisant la méthode deepcopy() du module de copie.
import copy dict1 = {'a': [1, 2], 'b': 3} dict2 = dict1 dict3 = dict1.copy() dict4 = copy.deepcopy(dict1) dict1['b'] = 'change'dict1['a'].append('change')print dict1 # {'a': [1, 2, 'change'], 'b': 'change'}print dict2 # {'a': [1, 2, 'change'], 'b': 'change'}print dict3 # {'a': [1, 2, 'change'], 'b': 3}print dict4 # {'a': [1, 2], 'b': 3}
Ajouter des éléments
1. 4# Ajouter directement via l'indice Si la valeur clé existe déjà, alors l'élément est modifié Bien entendu, vous pouvez également accéder à l'élément
supprimer l'élément .
1. d.clear()#Supprimez tous les éléments dans d
2 d.pop('a')#Supprimez l'élément avec la valeur clé 'a'
<🎜. >3. del d['a']#Supprimer l'élément avec la valeur clé 'a'Parcourir les éléments
pour k in d: imprimer 'd[%s]=' % k,d[k] ou pour k,v dans d.items(): print 'd[%s]=' % k,v ou for k,v in d.iteritems(): print 'd [%s] =' % k,v ou pour k,v dans d.viewitems() : print 'd[%s]=' % k,v La différence entre items(), iteritems() et viewitems()les items() de python2.x renvoie une liste contenant tous les éléments de dict comme ce qui précède, mais comme cela gaspillait trop de mémoire, un groupe de fonctions telles que iteritems(), iterkeys() et itervalues() ont ensuite été ajoutées (remarque : commencent à apparaître dans Python 2.2), qui sont utilisées pour renvoyer un itérateur pour économiser de la mémoire, mais l'itérateur Il ne peut pas refléter les changements dans dict après avoir appelé cette fonction. Viewitems() a donc été ajouté, qui représente toujours le dernier élément. Il n'y a qu'une seule fonction items dans Python 3.x, ce qui équivaut à viewitems() dans 2.x.Fusion de dictionnaire
1. dd = dict(dict1.items() dict2.items())Mais Cette efficacité n'est pas élevée. Selon les conseils d'analyse ci-dessus, il appelle en fait les éléments pour renvoyer d'abord la liste correspondante, puis effectue l'ajout de liste et enfin initialise la liste dans un dictionnaire 2. dict1, **dict2)Les clés du dictionnaire doivent être des chaînes. Dans Python 2 (l'interpréteur est CPython), nous pouvons utiliser des clés non-chaînes comme clés, mais ne vous y trompez pas : ce hack fonctionne simplement dans Python 2 en utilisant l'environnement d'exécution standard CPython. L'instruction ci-dessus est équivalente à dd = dict1.copy()dd.update(dict2)où dd.update(dict2) est équivalent à for k dans dict2 dd[k] = dict2[k]On voit que la fonction de mise à jour peut non seulement ajouter des éléments inexistants éléments, mais modifie également les éléments existants. La valeur de l'élément de la clé. Et d'après ce qui précède, nous savons que les dictionnaires peuvent également être fusionnés via une mise à jour et pour...in.Trier
dict = { : , : , : , : sorted(dict.items(), key= sorted(dict.items(), key= d: d[1]) ls = list(dict.keys()) ls.sort() for k in ls: print(k, dict[k]) for k in sorted(dict.keys()): print(k, dict[k])
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Solution aux problèmes d'autorisation Lors de la visualisation de la version Python dans Linux Terminal Lorsque vous essayez d'afficher la version Python dans Linux Terminal, entrez Python ...

Comment enseigner les bases de la programmation novice en informatique dans les 10 heures? Si vous n'avez que 10 heures pour enseigner à l'informatique novice des connaissances en programmation, que choisissez-vous d'enseigner ...

Comment éviter d'être détecté lors de l'utilisation de FiddlereVerywhere pour les lectures d'homme dans le milieu lorsque vous utilisez FiddlereVerywhere ...

Lorsque vous utilisez la bibliothèque Pandas de Python, comment copier des colonnes entières entre deux frames de données avec différentes structures est un problème courant. Supposons que nous ayons deux dats ...

Comment Uvicorn écoute-t-il en permanence les demandes HTTP? Uvicorn est un serveur Web léger basé sur ASGI. L'une de ses fonctions principales est d'écouter les demandes HTTP et de procéder ...

Dans Python, comment créer dynamiquement un objet via une chaîne et appeler ses méthodes? Il s'agit d'une exigence de programmation courante, surtout si elle doit être configurée ou exécutée ...

Utilisation de Python dans Linux Terminal ...

Fastapi ...
