2017-10-07 125 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) 

我試圖將兩個列表轉換爲字典。但dicDccpdicDcep的類型仍然是list s。將兩個列表轉換爲字典?

enter image description here

+0

是的,因爲你轉換它們放回使用'sorted' –

+1

我們爲什麼要尖叫名單? –

+0

內置['sorted()'](https://docs.python.org/3/library/functions.html#sorted)函數返回一個新的'list'對象,所以賦值給'dicDccp'和'dicDcep'有效地將它們從字典轉換爲該類型。 – martineau

回答

2

的問題是排序的行dictDccp = sorted(dictDccp.keys())

是一個函數,需要一個迭代的對象(比如,你給它的鍵()對象),並返回一個列表。用這個列表覆蓋你的dictDccp。

如果你試圖通過有序字典的鍵來迭代你可以做

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