Die Funktion unten folgende Listen erhält:Hinzufügen von Elementen zu Python Wörterbuch durch Schlüssel
L1= [[12345,75,'English'],
[23452,83,'Physics'],
[23560,81,'Statistics'],
[23415,61,'Computer'],
[23459,90,'Physics'],
[12345,75,'Computer'],
[23452,100,'Statistics']]
L2= [['a','English'],
['b','Physics'],
['c','Computer'],
['d','Statistics'],
['e','Philosophy']]
Die Funktion:
def TeachMarks (L1, L2):
teacherd=dict(L2) #key- teacher name, value- subject
Dc=dict.fromkeys(teacherd.values(),[]) #key-subj, value- empty list
for i in L1:
subj=i[2]
Dc[subj].append(i[0])
print '\n'
print Dc
Jede interne Liste in L1 ist Gegenstand in der [2] Position. Jeder Schlüssel des Wörterbuchs (Dc) ist ein Thema und sein Wert ist eine leere Liste. Die Funktion soll das erste Element in der internen Liste übernehmen und es der Liste hinzufügen, das ist der Wert des relevanten Subjekts im Wörterbuch.
Aber wenn ich es ausführe, fügt es tatsächlich das erste Element jeder internen Liste (von L1) zu jedem der Werte hinzu. Dies ist die Ausgabe:
{'Statistics': [12345, 23452, 23560, 23415, 23459, 12345, 23452], 'Philosophy': [12345, 23452, 23560, 23415, 23459, 12345, 23452], 'Computer': [12345, 23452, 23560, 23415, 23459, 12345, 23452], 'Physics': [12345, 23452, 23560, 23415, 23459, 12345, 23452], 'English': [12345, 23452, 23560, 23415, 23459, 12345, 23452]}
Was mache ich falsch?
Dank
was halten Sie die Ausgabe wie> –
Der Standard leere Liste sein wollen das gleiche für jede Taste ist?. –
Versuchen Sie zu überprüfen, ob 'subj == i [2]'? Dann machen Sie es zu einem 'if' und setzen Sie' append() 'darin – kuro