python - 追加和更新dict的Python评估策略
问题描述
我一直想知道为什么这不起作用。问一个问题就足够吸引我了。
some_list = []
some_dict = {}
some_list.append(some_dict.update({'new_key': 'new_value'}))
print(some_list)
结果:
[None]
我会认为最内部的策略首先被评估。
解决方案
some_dict.update
some_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'}
推荐阅读
- bash - 使用 `--version` 打印`brew --cellar formula`
- c# - 如何在 ASP.NET Core 3.1 中逐行迭代列表
- javascript - 如何进行这种更改方法,以便获得该给定金额的账单
- swiftui - 本地化包含图像和文本的文本内容
- r - 给定一个包含日期和时间的 POSIXct 序列,我如何仅计算时间的平均值(不包括天数)?
- firefox - crossOriginIsolated 在非本地主机地址处为假。我该如何解决?
- javascript - Flask 和 jQuery '$' 未定义
- javascript - jquery min js和slim js有什么区别
- sql - SQL 窗口化并持续使用过滤器通过阈值
- java - 如何在 JAVA 中发送 SOAP 请求