我正在使用Python 3以列表的形式返回一些值。这些值可以是浮点数,字符串,甚至是None
。例如,我可以有一个像这样的列表:
value = [ None, 1.2, 1.44, 'test', 9 ]
我有一个与该列表中的条目数量匹配的字典,并且我想遍历字典,为该字典添加值并为其指定特定的键。
所以,如果我的字典看起来像这样:
di = [
{'date' : '01/01/2019', 'info' : 'hello' },
{'date' : '01/02/2019', 'info' : 'world' },
{'date' : '01/03/2019', 'info' : 'test' },
{'date' : '01/04/2019', 'info' : 'no' },
{'date' : '01/05/2019', 'info' : 'yes' }
]
我想遍历value
并将每个项目推入di
中的特定键中,以使di
如下所示:
di = [
{'date' : '01/01/2019', 'info' : 'hello', 'update' : 'None' },
{'date' : '01/02/2019', 'info' : 'world', 'update' : 1.2 },
{'date' : '01/03/2019', 'info' : 'test', 'update' : 1.44 },
{'date' : '01/04/2019', 'info' : 'no', 'update' : 'test' },
{'date' : '01/05/2019', 'info' : 'yes', 'update' : 9 }
]
我看了其他一些答案,看起来有两种方法可以解决此问题:
方法1:
for k, *v in value:
data[k]['update'] += v
返回:TypeError: 'NoneType' object is not iterable
方法2:
for i, v in value:
data[i]['update'] = v
返回:TypeError: 'NoneType' object is not iterable
因此,这个None
值(我需要)显然与遍历值有关。有什么方法可以使用Python 3中的一些简单方法来循环value
并将该值附加到我的字典中?
答案 0 :(得分:1)
for newval, dic in zip(values, di):
dic['update'] = newval
zip
是将每个值与需要更新的词典相关联的关键。它使for
循环从两个列表中的每个列表中取一个。