Skip to main content
 首页 » 编程设计

python之无法修改 python 列表中的字段

2025年05月04日15powertoolsteam

我有下面的字典列表:

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']]