我是Python的新手,从某个地方阅读了一些代码片段。它是计数排序的实现。
代码如下:
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
就像在函数的前两行所述,它是
ht = {}
ht = defaultdict(lambda:0, ht)
我对这个初始化不是很清楚,你能帮我搞明白吗?此外,我们是否应该用以下两行代码替换它们?
ht = defaultdict(int) # default value 0
ht = defaultdict(lambda: 1) # with default value 1
并删除前面的ht = {}
,因为前面的赋值语句没有意义,你在下一行就已经改变了ht
的值。 - martineau