2012-07-13 216 views
3

我想在python中構造一個字典。代碼如下所示:從列表中填充字典值

dicti = {} 
keys = [1, 2, 3, 4, 5, 6, 7, 8, 9] 
dicti = dicti.fromkeys(keys) 

values = [2, 3, 4, 5, 6, 7, 8, 9] 

如何使用列表填充字典的值?有一些內置函數嗎?

結果應該是這樣的:

dicti = {1:2,2:3,3:4,4:5,5:6,6:7,7:8,8:9} 
+0

我想從列表中添加值,值= [2,3,4,5,6,7,8,9] – user1455966 2012-07-13 09:50:12

+0

請後應該是什麼'dicti'等。 – georg 2012-07-13 09:50:45

+0

dicti = {1:2,2:3,3:4,4:5,5:6,6:7,7:8,8:9} – user1455966 2012-07-13 09:53:12

回答

18

如果你有兩個列表keys相應values

keys = [1, 2, 3, 4, 5, 6, 7, 8, 9] 
values = [2, 3, 4, 5, 6, 7, 8, 9] 
dicti = dict(zip(keys, values)) 

dicti現在{1: 2, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9}

+0

作爲一個說明,應該使用拉鍊時要小心。注意'zip'如何從較長的列表中刪除值是很重要的。這個例子演示瞭如果有人打算擁有9個相應的鍵:值對,但卻錯過了「值」列表中的第一個值,會發生什麼情況。注意值是如何實際移位的,例如,值2以鍵1結束!這可能不是預期的行爲。請務必檢查代碼是否符合您的預期。 – 2017-03-20 15:25:14

0

這會起作用,但該清單必須是相同的大小(下降9我n個鍵列表)

keys = [1, 2, 3, 4, 5, 6, 7, 8] 
values = [2, 3, 4, 5, 6, 7, 8, 9] 
dicti = {} 

for x in range(len(keys)): 
    dicti[keys[x]] = values[x]