gpt4 book ai didi

python - 无法使用Python中的字典转换替换列表中的值

转载 作者:太空宇宙 更新时间:2023-11-03 17:09:08 25 4
gpt4 key购买 nike

我有以下字典列表 -

result=[{'cat': '66', 'count': 5, 'ids': [20, 21, 22, 23, 24]},
{'cat': '27', 'count': 4, 'ids': [20, 22, 23, 24]},
{'cat': '29', 'count': 2, 'ids': [20, 24]},
{'cat': '66 & 27', 'count': 4, 'ids': [20, 22, 23, 24]},
{'cat': '66 & 27 & 29', 'count': 2, 'ids': [20, 24]}
]

我试图用基于字典(转换)的值替换 cat id,我尝试了下面的代码

conversions ={'66':'Tesla','27':'Audi','29':'BMW'}
for do in result:
do['cat']=conversions[do['cat']]

print(result)

这给了我键“66和27”的Keyerror,我怎样才能得到“特斯拉和奥迪”的结果。对于 key “66 & 27 & 29”,它应该给出“Tesla & Audi & BMW”。

我不知道如何处理这种情况。对于实现这一结果的方法有什么建议吗?

最佳答案

按单个空格分割 do['cat'],处理结果列表中的每个元素,并使用单个空格作为分隔符连接结果。

for do in result:
do['cat'] = ' '.join([conversions.get(x, x) for x in do['cat'].split(' ')])
如果 x 可转换且 x

conversions.get(x, x) 返回 conversions[x]否则。

对于您的数据,此方法将产生

[{'cat': 'Tesla', 'count': 5, 'ids': [20, 21, 22, 23, 24]},
{'cat': 'Audi', 'count': 4, 'ids': [20, 22, 23, 24]},
{'cat': 'BMW', 'count': 2, 'ids': [20, 24]},
{'cat': 'Tesla & Audi', 'count': 4, 'ids': [20, 22, 23, 24]},
{'cat': 'Tesla & Audi & BMW', 'count': 2, 'ids': [20, 24]}]

关于python - 无法使用Python中的字典转换替换列表中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34292771/

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