簡體   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