那麼您可以使用zip
爲每個字典設置'a'
的值。喜歡的東西:
for dic,val in zip(dicts,values):
dic['a'] = val
或者把它在一個一個班輪:
for dic,val in zip(dicts,values): dic['a'] = val
注意有與前面的代碼片段沒有區別。這取決於你的眼睛最喜歡什麼。
我們在這裏更新字典:我們不創建副本等。這是一個重要的區別,因爲可以引用給定字典的變量將反映我們所做的更改。
zip(..)
將一個或多個迭代序列(這裏是dicts
和values
)作爲輸入並生成這些可迭代元素的元組。所以它發出:
(values[0],dicts[0]), (values[1],dicts[1]), ...
現在我們做元組拆包:我們統一val
和dic
與values
之一和dicts
之一。因此,對於每個元組,我們設置dic['a']
的值。
控制檯測試:
$ python3
Python 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> values = [5,10,15,20]
>>> dicts = [{'a':0, 'b':0, 'c':0},
... {'a':0, 'b':0, 'c':0},
... {'a':0, 'b':0, 'c':0},
... {'a':0, 'b': 0, 'c':0}]
>>> for dic,val in zip(dicts,values): dic['a'] = val
...
>>> dicts
[{'b': 0, 'c': 0, 'a': 5}, {'b': 0, 'c': 0, 'a': 10}, {'b': 0, 'c': 0, 'a': 15}, {'b': 0, 'c': 0, 'a': 20}]
什麼?他們的價值觀將保持0嗎? –
你的詞典的語法是錯誤的。 –