python collections.defaultdict()编译错误

sys*_*bug 3 python dictionary 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)
Run Code Online (Sandbox Code Playgroud)

并产生的错误是:

Traceback (most recent call last):
  File "indexdict.py", line 14, in <module>
    gen_dict = collections.defaultdict(list)
TypeError: first argument must be callable
Run Code Online (Sandbox Code Playgroud)

任何的想法?提前致谢

glg*_*lgl 12

用上面的内容覆盖内部list,作为类型的名称list = ['aema', 'airplane', 'amend'].将您重命名list为eg keys或者keylist一切都会好的.

所以更换

list = ['aema', 'airplane', 'amend']
Run Code Online (Sandbox Code Playgroud)

keys = ['aema', 'airplane', 'amend']
Run Code Online (Sandbox Code Playgroud)

for x in list:
Run Code Online (Sandbox Code Playgroud)

for x in keys:
Run Code Online (Sandbox Code Playgroud)