Heim  >  Artikel  >  Backend-Entwicklung  >  So implementieren Sie ein Ein-Schlüssel-Mehrwertwörterbuch in Python

So implementieren Sie ein Ein-Schlüssel-Mehrwertwörterbuch in Python

不言
不言nach vorne
2018-10-11 14:20:534574Durchsuche

Der Inhalt dieses Artikels befasst sich mit der Implementierung eines Ein-Schlüssel-Mehrwertwörterbuchs. Ich hoffe, dass er für Freunde hilfreich ist.

1. Anforderungen

Wir wollen ein Wort, das Schlüssel mehreren Werten zuordnen kann (das sogenannte Ein-Schlüssel-Mehrwertwörterbuch)

2. Lösung

Ein Wörterbuch ist ein assoziativer Container, bei dem jeder Schlüssel einem separaten Wert zugeordnet ist. Wenn Sie möchten, dass ein Schlüssel mehreren Werten zugeordnet wird, müssen Sie diese mehreren Werte in einem anderen Container (Liste oder Satz) speichern.

Sie können ein Wörterbuch wie folgt erstellen:

d={
‘a’:[1,2,3],
'b':[4,5]
}

oder so:

d={
'a':{1,2,3},
'b':{4,5}
}

Ob Sie eine Liste oder einen Satz verwenden möchten, hängt ganz von der Absicht Ihrer Anwendung ab . Wenn Sie die Reihenfolge beibehalten möchten, in der Elemente eingefügt wurden, verwenden Sie eine Liste. Wenn Sie doppelte Elemente entfernen möchten (und sich nicht um deren Reihenfolge kümmern), verwenden Sie eine Menge.

Um ein solches Wörterbuch einfach zu erstellen, können Sie die Klasse defaultdict im Collections-Modul verwenden. Eine Funktion von defaultdict besteht darin, dass der erste Wert automatisch initialisiert wird, sodass Sie sich nur auf das Hinzufügen von Elementen konzentrieren müssen:

from collections import defaultdict
d=defaultdict(list)
d['a'].append(1)
d['a'].append(2)
d['b'].append(4)
print(d)
d=defaultdict(set)
d['a'].add(1)
d['a'].add(2)
d['b'].add(4)
print(d)

Ergebnis:

defaultdict(<class &#39;list&#39;>, {'a': [1, 2], 'b': [4]})
defaultdict(<class &#39;set&#39;>, {'a': {1, 2}, 'b': {4}})

Das obige ist der detaillierte Inhalt vonSo implementieren Sie ein Ein-Schlüssel-Mehrwertwörterbuch in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen