如何编辑字典列表中的值?

42 投票
4 回答
107157 浏览
提问于 2025-04-16 07:40
my_dicts = [ 
    { 'key1' : 'value1',
      'key2' : 'value2' },

    { 'key1' : 'value1',  
      'key2' : 'value2' },

    { 'key1' : 'value1',  
      'key2' : 'value2' }]

有没有什么最有效的方法可以把所有的'value2'替换成'value3'呢?

4 个回答

4
for x in my_dicts:
    for y in x:
        if x.get(y) == 'value2':
            x.update({y: "value3"})

当然可以!请把你想要翻译的内容发给我,我会帮你把它变得更简单易懂。

13

Python3.7 中的字典推导式(不过它会返回一个深拷贝):

update = {'key2':'value3'}
new_dicts = [{**d,**update} for d in my_dicts]
65

我没有做过具体的时间测试,但你可能很难做到比这个更快了。

for d in my_dicts:
    d.update((k, "value3") for k, v in d.iteritems() if v == "value2")

这是针对Python3的更新

for d in my_dicts:
    d.update((k, "value3") for k, v in d.items() if v == "value2")

撰写回答