python collections.defaultdict() 编译错误
下面这段代码,看起来简单明了,但在编译时却出现了错误:
import string
import collections
#create dictionary with alphabets as keys, and empty values
list = ['aema', 'airplane', 'amend']
gen_dict = dict.fromkeys(string.ascii_lowercase, '')
gen_dict = collections.defaultdict(list)
for x in list:
gen_dict['a'].append(x)
而产生的错误信息是:
Traceback (most recent call last):
File "indexdict.py", line 14, in <module>
gen_dict = collections.defaultdict(list)
TypeError: first argument must be callable
有什么想法吗?谢谢!
1 个回答
12
你把内部的 list
这个类型的名字给覆盖掉了,因为你在上面写了 list = ['aema', 'airplane', 'amend']
。把你的 list
改个名字,比如改成 keys
或者 keylist
,这样就没问题了。
所以,把
list = ['aema', 'airplane', 'amend']
替换成
keys = ['aema', 'airplane', 'amend']
然后把
for x in list:
替换成
for x in keys: