【发布时间】:2015-08-02 03:02:37
【问题描述】:
我是 python 新手,我从某个地方阅读了一些代码 sn-p。这是一种计数排序的实现。
代码如下:
from collections import defaultdict
def sort_colors(A):
ht = {} # a hash map
ht = defaultdict(lambda:0, ht) # with default value 1
for i in A:
ht[i] += 1
ret = []
for k in [0, 1, 2]:
ret.extend([k]*ht[k])
return ret
和 func 的前两行一样,它是
ht = {}
ht = defaultdict(lambda:0, ht)
我不太清楚这个初始化。你能帮我弄清楚吗?还有,我们是否应该将这两行替换为以下内容?
ht = defaultdict(int) # default value 0
【问题讨论】:
-
只要是从集合中导入,还不如直接使用
Counter。 -
这里的默认值不是1,是0。
-
尝试
ht = defaultdict(lambda: 1) # with default value 1并删除前面的ht = {},因为您在下一行更改了ht的值,所以没有任何效果。
标签: python defaultdict