在Python中使用循环将列表元素添加为字典中的值



我有以下字典:

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值插入的方式感到困惑。我应该循环使用字典键吗?

  1. 您可以zip将数据从numDictnumList中配对

    zip(inumDict, numList)
    > [('1', '30'), ('2', ' '), ('3', '40'), ...]
    
  2. 然后创建一个具有映射的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'}

相关内容

  • 没有找到相关文章

最新更新