为什么这个关于字典的 Python 片段有效? [复制]

2024-01-06

说我们有这个

>>> x = {'a': 1, 'b': 2}
>>> y = {}
>>> for k, y[k] in x.items(): pass
...
>>> y
{'a': 1, 'b': 2}

为什么这有效?

注:我第一次看到这个here https://twitter.com/treyhunner/status/1451592709798604800?s=20


a, b = (c, d)从左到右解压元组并分配a = c and b = d以该顺序。

x.items()迭代键值对x。例如。正在做list(x.items())会给[('a', 1), ('b', 2)]

for a, b in x.items()将密钥分配给a,以及值b对于每个键值对x.

for k, y[k] in x.items()将密钥分配给k,以及值y[k]对于每个键值对x.

您可以使用k in y[k]因为k由于解包发生在左右两侧,所以已经被分配

您不需要在循环中执行任何操作,因为您需要的任何操作都已完成。

因为循环已经分配了每个值x to y[k], y现在是一个浅拷贝x.

正如您引用的推文所说,这确实是“简洁、不直观且令人困惑”办法x.copy()

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么这个关于字典的 Python 片段有效? [复制] 的相关文章

随机推荐