gpt4 book ai didi

python - 如何在字典列表中使用列表和字典理解添加键和值?

转载 作者:太空宇宙 更新时间:2023-11-03 13:55:56 24 4
gpt4 key购买 nike

我有一个字典列表,

ip_list = [{'1403': [-56, -58], 'data': '1'},
{'1403': [-56, -58], 'data': '0'}]

现在我需要在字典中添加一个新键(即“mac”)和值(即“xyz”),如果字典包含“data”= 1 并且结果应该是,

expected_outcome = [{'1403': [-56, -58], 'data': '1', 'mac':'xyz'},
{'1403': [-56, -58], 'data': '0'}]

我试过,

list_dict_comp = [dict(item, **{'mac':'xyz'}) for item in ip_list]

然而,上面的表达式给出了,

list_dict_comp = [{'1403': [-56, -58], 'data': '1', 'mac':'xyz'},
{'1403': [-56, -58], 'data': '0', 'mac':'xyz'}]

谁能帮助我在一个表达式中同时使用列表和字典理解来实现“expected_outcome”

最佳答案

你得到的原因

list_dict_comp = [{'1403': [-56, -58], 'data': '1', 'mac':'xyz'},
{'1403': [-56, -58], 'data': '0', 'mac':'xyz'}]

是因为您要将 {'mac':'xyz'} 添加到列表中的每个元素。

为什么不让您的生活更轻松,只需遍历 ip_list,如果 data 出现在元素的键中,则添加 {'mac':'xyz'} ip_list 的值,data 的值为 '1'

ip_list = [{'1403': [-56, -58], 'data': '1'},
{'1403': [-56, -58], 'data': '0'}]

for ip in ip_list:
if ip.get('data') == '1':
ip['mac'] = 'xyz'
print(ip_list)
#[{'1403': [-56, -58], 'data': '1', 'mac': 'xyz'}, {'1403': [-56, -58], 'data': '0'}]

关于python - 如何在字典列表中使用列表和字典理解添加键和值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55626692/

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