我有下面的字典列表:
categories=[
{'id':0,'value':8,'name':'Banking'},
{'id':1,'value':5,'name':'Home'},
{'id':2,'value':2,'name':'Travel'},
{'id':3,'value':4,'name':'Movies'},
{'id':4,'value':7,'name':'Hiking'},
{'id':5,'value':9,'name':'Food'},]
我正在尝试遍历上面列表中的所有值并将它们更新如下:
for cat in categories:
if(cat['value']==2):
cat['value']=1
if(cat['value']==3):
cat['value']=4
if(cat['value']==4):
cat['value']=8
if(cat['value']==5):
cat['value']=12
if(cat['value']==8):
cat['value']=40
......
(from 2 till 10 in if condition)
这种方法的问题在于,
例如,名称 Banking 的 cat['value']
是 8
所以上面的 if 条件会将值设置为 40。
稍后在循环中,电影的 cat['value']
从 4 变为 8,稍后更新为 40 ..(现在它搞砸了 cat ['值']
)
所以,这种更新方式肯定是不正确的。
如何根据这些多个条件更新列表的 cat['values']
?
如果需要,我可以将 if 条件框定为另一个列表
[{2:1},{3:4},{4:8},{5:12},....]
能否请您帮助我提供一种方法,让我可以根据上述条件更新我的 cat['values']
?
最佳答案
您还可以将转换写入字典,然后通过旧值访问字典并用字典的值覆盖。
conversions ={2:1,3:4,4:8,..}
for cat in categories:
cat['values']=conversions[cat['values']]
关于python - 无法修改 python 列表中的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34199710/