gpt4 book ai didi

python - 从列表中的值向列表中的字典添加键

转载 作者:太空狗 更新时间:2023-10-30 02:25:58 25 4
gpt4 key购买 nike

如果字典包含来自另一个列表中的值的特定键,我如何将键添加到列表中的字典?

我有一个字典列表。这些字典要么只包含一个键('review'),要么包含两个键('review' 和 'response')。当字典包含键“response”时,我想添加两个键,值来自两个列表。

data = [{'response': 'This is a response',
'review': 'This is a review'},
{'review': 'This is only a review'},
{'response': 'This is also a response',
'review': 'This is also a review'}]
date = ['4 days ago',
'3 days ago']
responder = ['Manager',
'Customer service']

我尝试了以下方法,但由于对于包含键“response”的每个字典,我只想从每个列表的值中加 1,所以我不确定如何执行此操作。

for d in data:
if 'response' in d:
for i in date:
d['date'] = i
for i in responder:
d['responder'] = i

输出显示它当然只添加列表的最后一个值,因为我正在遍历列表。我该如何解决这个问题?

[{'date': '3 days ago',
'responder': 'Customer service',
'response': 'This is a response',
'review': 'This is a review'},
{'review': 'This is only a review'},
{'date': '3 days ago',
'responder': 'Customer service',
'response': 'This is also a response',
'review': 'This is also a review'}]

最佳答案

您可以为您的日期和响应者列表创建一个迭代器,然后在您的 if 语句中调用 next() 以从列表中取出下一个项目

data = [{'response': 'This is a response', 
'review': 'This is a review'},

{'review': 'This is only a review'},

{'response': 'This is also a response',
'review': 'This is also a review'}]

date = ['4 days ago', '3 days ago']
responder = ['Manager', 'Customer service']

d_iter = iter(date)
r_iter = iter(responder)

for d in data:
if 'response' in d:
d['date'] = next(d_iter)
d['responder'] = next(r_iter)

print(data)
>> [
{'date': '4 days ago',
'review': 'This is a review',
'responder': 'Manager',
'response': 'This is a response'},

{'review': 'This is only a review'},

{'date': '3 days ago',
'review': 'This is also a review',
'responder': 'Customer service',
'response': 'This is also a response'}
]

关于python - 从列表中的值向列表中的字典添加键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46769257/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com