1538 Stimmen

Erstellen eines Wörterbuchs mit Verständigung

Kann ich die Syntax des Listenverständnisses verwenden, um ein Wörterbuch zu erstellen?

Zum Beispiel durch Iteration über Paare von Schlüsseln und Werten:

d = {... for k, v in zip(keys, values)}

32voto

Amit Tripathi Punkte 6454

Python-Version >= 2.7, führen Sie folgende Schritte aus:

d = {i: True for i in [1,2,3]}

Python-Version < 2.7 <sup>(RIP, 3. Juli 2010 - 31. Dezember 2019) </sup> gehen Sie wie folgt vor:

d = dict((i,True) for i in [1,2,3])

26voto

Blairg23 Punkte 9968

Um die Antwort von @fortran zu ergänzen: Wenn Sie über eine Liste von Schlüsseln iterieren wollen key_list sowie eine Liste von Werten value_list :

d = dict((key, value) for (key, value) in zip(key_list, value_list))

o

d = {(key, value) for (key, value) in zip(key_list, value_list)}

7voto

Ekhtiar Punkte 823

Nur um ein weiteres Beispiel anzuführen. Stellen Sie sich vor, Sie haben die folgende Liste:

nums = [4,2,2,1,3]

und Sie möchten es in ein Diktat umwandeln, wobei der Schlüssel der Index und der Wert das Element in der Liste ist. Sie können dies mit der folgenden Codezeile tun:

{index:nums[index] for index in range(0,len(nums))}

6voto

nomoreabond2017 Punkte 142

Hier ist ein weiteres Beispiel für die Erstellung eines Wörterbuchs mit Hilfe des Diktatverständnisses:

Was ich hier zu tun versuche, ist, ein Alphabet-Wörterbuch zu erstellen, in dem jedes Paar der englische Buchstabe und seine entsprechende Position im englischen Alphabet ist.

>>> import string
>>> dict1 = {value: (int(key) + 1) for key, value in 
enumerate(list(string.ascii_lowercase))}
>>> dict1
{'a': 1, 'c': 3, 'b': 2, 'e': 5, 'd': 4, 'g': 7, 'f': 6, 'i': 9, 'h': 8, 
'k': 11, 'j': 10, 'm': 13, 'l': 12, 'o': 15, 'n': 14, 'q': 17, 'p': 16, 's': 
19, 'r': 18, 'u': 21, 't': 20, 'w': 23, 'v': 22, 'y': 25, 'x': 24, 'z': 26}
>>> 

Beachten Sie die Verwendung von enumerate hier, um eine Liste von Alphabeten und deren Indizes in der Liste zu erhalten und die Alphabete und Indizes zu vertauschen, um das Schlüssel-Wert-Paar für das Wörterbuch zu erzeugen

Ich hoffe, es vermittelt Ihnen einen guten Eindruck von dictionary comp und ermutigt Sie, es häufiger zu verwenden, um Ihren Code kompakt zu machen.

6voto

ASE Punkte 1264

Dieser Code erstellt ein Wörterbuch mit Listenverständnis für mehrere Listen mit unterschiedlichen Werten, die für folgende Zwecke verwendet werden können pd.DataFrame()

#Multiple lists 
model=['A', 'B', 'C', 'D']
launched=[1983,1984,1984,1984]
discontinued=[1986, 1985, 1984, 1986]

#Dictionary with list comprehension
keys=['model','launched','discontinued']
vals=[model, launched,discontinued]
data = {key:vals[n] for n, key in enumerate(keys)}

#Convert dict to dataframe
df=pd.DataFrame(data)
display(df)

enumerate wird passieren n a vals für jede key mit seiner Liste

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X