想象一下我在python中有这个词典:
dict = {'arr': [{'prop1': 'foo'}, {'prop1': 'bar'}]}
我想将arr中所有项目的'prop1'值更改为'foobar',我可以这样:
for item in dict['arr']:
item['prop1'] = 'foobar'
但我想知道是否有办法使用列表表达式来执行此操作。
答案 0 :(得分:3)
您可以,但只有在每一步都替换整个字典时才能使用
dict['arr'] = [
{k: 'foobar' if k == 'prop1' else v for k, v in d.items()}
for d in dict['arr']]
这假设您在这些词典中有其他键。如果你不这样做,只需用这一个密钥生成新的词典:
dict['arr'] = [{'prop1': 'foobar'} for _ in dict['arr']]
就个人而言,如果你所做的只是在字典中更新一个键值对,那么只需坚持原来的for
循环。