Python3 列表表达式



>想象一下我在python中有这个字典:

dict = {'arr': [{'prop1': 'foo'}, {'prop1': 'bar'}]}

我想将 arr 中所有项目的"prop1"值更改为"foobar",我可以这样:

for item in dict['arr']:
    item['prop1'] = 'foobar'

但是我想知道是否有办法使用列表表达式来做到这一点。

你可以,但前提是每一步都替换整个字典

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循环。

最新更新