Questions tagged «defaultdict»

15
collections.defaultdict如何工作?
我已经阅读了python文档中的示例,但仍然无法弄清楚此方法的含义。有人可以帮忙吗?这是python文档中的两个示例 >>> from collections import defaultdict >>> s = 'mississippi' >>> d = defaultdict(int) >>> for k in s: ... d[k] += 1 ... >>> d.items() [('i', 4), ('p', 2), ('s', 4), ('m', 1)] 和 >>> s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)] >>> d …

7
嵌套的defaultdict defaultdict
有没有办法使defaultdict也成为defaultdict的默认值?(即无限级递归defaultdict?) 我希望能够做到: x = defaultdict(...stuff...) x[0][1][0] {} 因此,我可以做到x = defaultdict(defaultdict),但这仅是第二层: x[0] {} x[0][0] KeyError: 0 有一些食谱可以做到这一点。但是,仅使用常规的defaultdict参数就可以做到吗? 请注意,这是在问如何执行无限级递归defaultdict,因此它与Python不同:defaultdict的defaultdict?,这是执行两级defaultdict的方法。 我可能最终会使用束模式,但是当我意识到自己不知道该怎么做时,这引起了我的兴趣。

10
`if key in dict` vs. try / except`-哪个更易读?
我有一个关于成语和可读性的问题,对于这种特殊情况,似乎存在Python哲学上的冲突: 我想从字典B构建字典A。如果B中不存在特定键,则什么也不做,继续。 哪种方法更好? try: A["blah"] = B["blah"] except KeyError: pass 要么 if "blah" in B: A["blah"] = B["blah"] “请原谅”与“简单明了”。 哪个更好?为什么?



5
Python defaultdict和lambda
在其他人的代码中,我阅读了以下两行: x = defaultdict(lambda: 0) y = defaultdict(lambda: defaultdict(lambda: 0)) 由于defaultdict的参数是默认工厂,因此我认为第一行表示当我为不存在的键k调用x [k](例如类似v = x [k]的语句)时,键值对(k ,0)会自动添加到字典中,就像首先执行语句x [k] = 0一样。我对么? 那y呢?似乎默认工厂将创建一个默认值为0的defaultdict。但这具体意味着什么?我试图在Python shell中尝试使用它,但无法弄清楚它到底是什么。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.