asd*_*van 14 python dictionary
说我们有这个
>>> x = {'a': 1, 'b': 2}
>>> y = {}
>>> for k, y[k] in x.items(): pass
...
>>> y
{'a': 1, 'b': 2}
Run Code Online (Sandbox Code Playgroud)
为什么这有效?
注意:我第一次在这里看到这个
a, b = (c, d)从左到右解压元组并按该顺序分配a = c和。b = d
x.items()迭代 中的键值对x。例如,做list(x.items())会给[('a', 1), ('b', 2)]
for a, b in x.items()将中的每个键值对的键分配给a,并将值分配给。bx
for k, y[k] in x.items()将中的每个键值对的键分配给k,并将值分配给。y[k]x
您可以使用kiny[k]因为k已经分配了解包发生在左右两侧
您不需要在循环中执行任何操作,因为您需要的任何操作都已完成。
因为循环已经将每个值分配给xto y[k],y现在是 的浅表副本x。
正如您引用的推文所说,这确实是一种“简洁、不直观且令人困惑”的方法x.copy()