Cet article vous présente un résumé du fonctionnement du dictionnaire Python (avec des exemples). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
La structure du dictionnaire (dict) est une structure de données couramment utilisée en Python. Sur la base de mon expérience d'utilisation réelle, l'auteur fait un résumé des connaissances pertinentes sur les dictionnaires, dans l'espoir de donner un peu d'inspiration aux lecteurs~
Créer un dictionnaire Une façon courante de créer un dictionnaire consiste d'abord à créer un dictionnaire vide, puis à ajouter des clés et des valeurs une par une, par exemple en créant un dictionnaire person={'name ':'Tome', 'age' :22, 'city':'Shanghai, 'ID': '073569'}, vous pouvez utiliser le code suivant :person = {} person['name'] = 'Tom' person['age'] = 22 person['city'] = 'Shanghai' person['ID'] = '073569' print(person)
{'name': 'Tom', 'age': 22, 'city': 'Shanghai', 'ID': '073569'}
attrs = ['name', 'age', 'city', 'ID'] values = ['Tom', 22, 'Shanghai', '073569'] person = dict(zip(attrs, values)) print(person)
attrs = ['name', 'age', 'city', 'ID'] values = ['Tom', 22, 'Shanghai', '073569'] person = dict(zip(attrs, values)) for key, value in person.items(): print('Key:%-6s, Value:%s'%(key, value))
Key:name , Value:Tom Key:age , Value:22 Key:city , Value:Shanghai Key:ID , Value:073569
attrs = ['name', 'age', 'city', 'ID'] values = ['Tom', 22, 'Shanghai', '073569'] person = dict(zip(attrs, values)) print('对调前:') print(person) Person = {v:k for k,v in person.items()} print('对调后:') print(Person)
对调前: {'name': 'Tom', 'age': 22, 'city': 'Shanghai', 'ID': '073569'} 对调后: {'Tom': 'name', 22: 'age', 'Shanghai': 'city', '073569': 'ID'}
dans le module collections
, qui est une structure de dictionnaire ordonnée. OrderedDict
L'exemple de code est le suivant (la version Python est 3.5.2) :
from collections import OrderedDict d = {} d['Tom']='A' d['Jack']='B' d['Leo']='C' d['Alex']='D' print('无序字典(dict):') for k,v in d.items(): print(k,v) d1 = OrderedDict() d1['Tom']='A' d1['Jack']='B' d1['Leo']='C' d1['Alex']='D' print('\n有序字典(OrderedDict):') for k,v in d1.items(): print(k,v)
无序字典(dict): Leo C Jack B Tom A Alex D 有序字典(OrderedDict): Tom A Jack B Leo C Alex D
est une sous-classe de la classe collections.defaultdict
intégrée de Python. Le premier paramètre fournit la valeur initiale de l'attribut dict
default_factory, qui est par défaut . Il remplace une méthode et ajoute une variable d'instance inscriptible. Par ailleurs, il fonctionne de la même manière que None
, mais fournit une valeur par défaut pour une clé inexistante, évitant ainsi les exceptions dict
. KeyError
Prenons les statistiques de fréquence des mots de la liste comme exemple pour démontrer les avantages de
. collections.defaultdict
Dans des circonstances normales, le code de fréquence des mots dans notre liste statistique est :
words = ['sun', 'moon', 'star', 'star',\ 'star', 'moon', 'sun', 'star'] freq_dict = {} for word in words: if word not in freq_dict.keys(): freq_dict[word] = 1 else: freq_dict[word] += 1 for key, val in freq_dict.items(): print(key, val)
sun 2 moon 2 star 4
, le code peut être optimisé : collections.defaultdict
from collections import defaultdict words = ['sun', 'moon', 'star', 'star',\ 'star', 'moon', 'sun', 'star'] freq_dict = defaultdict(int) for word in words: freq_dict[word] += 1 for key, val in freq_dict.items(): print(key, val)
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!