首页 > 解决方案 > 追加和更新dict的Python评估策略

问题描述

我一直想知道为什么这不起作用。问一个问题就足够吸引我了。

some_list = []
some_dict = {}
some_list.append(some_dict.update({'new_key': 'new_value'}))
print(some_list)

结果: [None]

我会认为最内部的策略首先被评估。

标签: python

解决方案


some_dict.updatesome_dict就地更新并返回None,它不返回更新的dict

some_dict.update({'new_key': 'new_value'})
some_list.append(some_dict)

但是,如果要保持旧 dict 不变,可以使用以下命令:

some_list = []
some_dict = {'old_key' : 'old_value'}
some_list.append({k : v for k, v in [*some_dict.items(), ('new_key', 'new_value')]})
print(some_list)
print(some_dict)

输出:

[{'old_key': 'old_value', 'new_key': 'new_value'}]
{'old_key': 'old_value'}

推荐阅读