附加和更新字典的Python评估策略

Dav*_*vid 0 python

我一直想知道为什么这不起作用。我很想问一个问题。

some_list = []
some_dict = {}
some_list.append(some_dict.update({'new_key': 'new_value'}))
print(some_list)
Run Code Online (Sandbox Code Playgroud)

结果: [None]

我本来以为首先要评估最内在的策略。

MrG*_*eek 5

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

some_dict.update({'new_key': 'new_value'})
some_list.append(some_dict)
Run Code Online (Sandbox Code Playgroud)

但是,如果要保留旧字典不变,可以使用以下命令:

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)
Run Code Online (Sandbox Code Playgroud)

输出:

[{'old_key': 'old_value', 'new_key': 'new_value'}]
{'old_key': 'old_value'}
Run Code Online (Sandbox Code Playgroud)