更新多维列表中的字段?

时间:2015-03-20 13:43:34

标签: python

如何更新'b'"列"字典列表中的值,例如:

list = [{'a': 4098, 'b': 4139, 'c':222, 'd':333}, 
        {'a': 4098, 'b': 4139, 'c':222, 'd':333},
        {'a': 4098, 'b': 4139, 'c':222, 'd':333},
        {'a': 4098, 'b': 4139, 'c':222, 'd':333}
       ]

我试过这样的事情:

i = 0
for x in list:
   x.index(i).'b' = 'new value'
   i = i+1

1 个答案:

答案 0 :(得分:4)

这比你想象的要简单。

list = [{'a': 4098, 'b': 4139, 'c':222, 'd':333}, 
        {'a': 4098, 'b': 4139, 'c':222, 'd':333},
        {'a': 4098, 'b': 4139, 'c':222, 'd':333},
        {'a': 4098, 'b': 4139, 'c':222, 'd':333}
       ]

for x in list:
    x['b'] = "new value"

首先,你的python迭代错误,当你做for x in list时,你不需要按索引获取元素,xlist内的元素你正在改变。

然后,要访问dict中的值,可以使用方括号并传入密钥。 这样,您可以检索值,或为键指定值,将该键作为新键。

正如评论中所提到的,命名一个与保留字同名的变量,如listdict在任何语言中都是不好的做法,它可能会给读者带来困惑或难以解决问题调试。