我有以下字典列表 -
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/