2017-10-07 3 views
0
def dbupdate(self): 
    dicDccp = dict(zip(self.dccpdate, self.dccpValue)) 
    dicDcep = dict(zip(self.dcepdate, self.dcepValue)) 
    dicDccp = sorted(dicDccp.keys()) 
    dicDcep = sorted(dicDcep.keys()) 
    print(type(dicDccp)) 
    print(type(dicDcep)) 
    for (k1, v1), (k2, v2) in zip(dicDccp.items(), dicDcep.items()): 
     self.Db.dbupdate(self.symbol, self.threshold, k1, v1, k2, v2) 

Ich habe versucht, die zwei Listen in ein Wörterbuch zu konvertieren. Aber die Typen dicDccp und dicDcep waren immer noch list s.Konvertieren Sie zwei Listen in ein Wörterbuch?

enter image description here

+0

Ja tun konnte, weil man sie wieder in Listen 'mit umgewandelt sorted' –

+1

WARUM SCHREIEN WIR ?! –

+0

Die eingebaute ['sorted()'] (https://docs.python.org/3/library/functions.html#sorted) Funktion gibt ein neues 'list' Objekt zurück, also die Zuordnungen zurück zu' dicDccp' und 'dicDcep' ändern sie effektiv von Wörterbüchern in diesen Typ. – martineau

Antwort

2

Das Problem ist die Linie dictDccp = sorted(dictDccp.keys())

sortiert ist eine Funktion, die ein iterable Objekt (zB die Tasten() Objekt, das Sie es geben) hat und gibt eine Liste. Sie überschreiben Ihr dictDccp mit dieser Liste.

Wenn Sie versuchen, über die Tasten der Wörterbücher in sortierter Reihenfolge iterieren Sie

for (k1, v1), (k2, v2) in zip(sorted(dictDccp.items()), sorted(dictDcep.items())): 
    self.Db.dbupdate(self.symbol, self.threshold, k1, v1, k2, v2) 
Verwandte Themen