2016-12-23 1 views
2

Hallo, ich habe folgendes Wörterbuch:Wie erstellt man das folgende Wörterbuch mit List Comprehension?

vocabulary = {'car': 1, 'read': 3, 'yellow': 2} 

weight = [23,445,56] 

Ich mag das erste Wörterbuch mit der Liste des Gewichts assoziieren, wie folgt, um das Gewicht des Wortes car ist 23, da der Wert des Schlüssel car ist

vocabulary_weight = {'yellow':445,'read':56,'car':23} 
: das Gewicht des Wortes read 56 ist, da ist die 3-Position des List Gewichts und schließlich die Wicht von yellow sind 2, da 445 an der zweiten Position der Liste ist, so würde mein gewünschter Ausgang sein

Ich habe versucht:

vocabulary_weight = {key: value for (vocabulary.keys(), weight[vocabulary.value()]) 
        in vocabulary} 

aber ich bin immer:

File "<ipython-input-7-471237aaf624>", line 7 
    vocabulary_weight = {key: value for (vocabulary.keys(), weight[vocabulary.value()]) in vocabulary} 
            ^
SyntaxError: can't assign to function call 

So würde ich Unterstützung erhalten möchten die gewünschte Ausgabe, danke für die Unterstützung achive,

Antwort

2

Sie können über iterieren vocabulary.items() Dies gibt Ihnen die Schlüssel und die Werte als Tupel. Packen Sie zu mit key, value und value - 1 als Index der Liste verwenden:

>>> vocabulary = {'car': 1, 'read': 3, 'yellow': 2} 
>>> weight = [23,445,56] 
>>> vocabulary_weight = {key: weight[value - 1] for key, value in vocabulary.items()} 
>>> vocabulary_weight 
{'car': 23, 'read': 56, 'yellow': 445} 
+0

Dank Ich schätze die Unterstützung – neo33

1

Diese Arbeit sollte:

vocabulary = {'car': 1, 'read': 3, 'yellow': 2} 
weight = [23,445,56] 

vocabulary_weight = {key : weight[int(vocabulary[key]) - 1] for key in vocabulary.keys()} 
+0

Dank dafür war sehr nützlich, – neo33

+0

@ neo33 Sie‘ Du bist willkommen). – Nurjan

Verwandte Themen