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)}
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)}
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))}
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.
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 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.