【发布时间】:2016-08-01 13:10:56
【问题描述】:
当我需要计算不同类型的元素时,我发现自己在写这样的东西:
if k not in removed:
removed[k] = 0
removed[k] = removed[k] + 1
有时我会用一个新的空列表做同样的事情,这个列表会随着时间的推移而增长。 上面的代码运行良好,但感觉有更好的写法。 有吗?
【问题讨论】:
-
我想你可能正在寻找codereview.stackexchange.com :) 这个网站是用于代码不起作用的。
CodeReview适用于有效的代码,但您想尝试做得更好。 :) -
这听起来像是Counter 的工作。
-
您可以通过使用defauldict 而不是普通的字典来使其更简洁。还有一个Counter 类,它有一些强大的方法,但运行速度有点慢,所以如果速度有问题,请使用 defaultdict,除非你想使用那些 Counter 方法。
-
感谢 Counters 和 defaultdict 正是我想要的。下次我会使用 codereview (: