繁体   English   中英

使用列表默认值了解defaultdict行为

[英]Understanding defaultdict behavior with a list default

我试图理解以下代码:

from collections import defaultdict

dd_pair = defaultdict(lambda: [0, 0])
dd_pair[2][1] = 1                       # now dd_pair contains {2: [0,1]}

我了解defaultdict在这里默认为两个元素的列表。 但是结果如何最终变为{2: [0,1]}

dd_pair[2]返回对值为[0, 0]的新创建list的引用。 忽略defaultdict本身,看看它如何与这样的list一起工作:

>>> mylist = [0, 0]
>>> mylist[1] = 1
>>> mylist
[0, 1]

defaultdict只是在每次访问以前从未访问过的密钥时动态创建一个类似于mylistlist ,将其存储为所请求密钥的值,并返回对其的引用。 通过添加[1]您可以对该list进行索引分配,并且由于它与存储和返回的list参考相同,因此修改其中一个会修改另一个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM