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)