我有以下字典:
numDict = {
"1" : '0',
"2" : '0',
"3" : '0',
"4" : '0',
"5" : '0',
"6" : '0',
"7" : '0',
"8" : '0',
"9" : '0',
"10" : '0',
"11" : '0',
"12" : '0',
}
以及以下列表:
numList = ['30', ' ', '40', '6', '40', '34', '4', '20', '5', '74', ' ','36']
我想使用循环插入numList的每个元素作为numDict的值,所以numDict中每个键的值应该是这样的:
numDict = {
"1" : '30',
"2" : ' ',
"3" : '40',
"4" : '6',
"5" : '40',
"6" : '34',
"7" : '4',
"8" : '20',
"9" : '5',
"10" : '74',
"11" : ' ',
"12" : '36',
}
我对将list元素作为dictionary值插入的方式感到困惑。我应该循环使用字典键吗?
-
您可以
zip
将数据从numDict
与numList
中配对zip(inumDict, numList) > [('1', '30'), ('2', ' '), ('3', '40'), ...]
-
然后创建一个具有映射的
dict
dict([('1', '30'), ('2', ' '), ('3', '40')]) > {'1': '30', '2': ' ', '3': '40'}
最终代码
inumDict = {"1": '0', "2": '0', "3": '0', "4": '0',
"5": '0', "6": '0', "7": '0', "8": '0',
"9": '0', "10": '0', "11": '0', "12": '0', }
numList = ['30', ' ', '40', '6', '40', '34', '4', '20', '5', '74', ' ', '36']
result = dict(zip(inumDict, numList))
print(result)
只需使用zip
并行迭代字典和列表,然后为每个键为字典分配新值,就可以使用字典理解。
>>> {k:newVal for k,newVal in zip(numDict, numList)}
{'1': '30', '2': ' ', '3': '40', '4': '6', '5': '40', '6': '34', '7': '4', '8': '20', '9': '5', '10': '74', '11': ' ', '12': '36'}