我们说我有
a = [1,2,3,4,5]
我试图创建一个字典
dictObj = { (key,[]) for key in a}
但是我收到了一个不可用的类型错误。这对我来说似乎很奇怪,因为如果值列表是正确的,它会很好吗?我想知道是否有人能告诉我创建哈希表的正确语法,其中所有键都是a中的元素,每个键都指向一个空数组。
答案 0 :(得分:5)
字典理解中的键和值不表示为元组,它们只是由:
dictObj = {key:[] for key in a}
答案 1 :(得分:3)
你是说这个吗?
dictObj = { key:[] for key in a}
答案 2 :(得分:2)
如果你想保留你拥有的东西,你需要包裹dict()
而不是大括号:
dict((key, []) for key in a)
与其他人给出的相同,但语法略有不同。
另外,如果你想用空列表初始化词典,你应该看一下collections.defaultdict
,它会将你的键初始化为你选择的任何类型。这可以防止您自己必须这样做。
以下是一个示例用法:
from collections import defaultdict
d = defaultdict(list)
a = [1,2,3,4,5]
for key in a:
print(key, ':', d[key])
其中打印出每个项目的初始化列表,如下所示:
1 : []
2 : []
3 : []
4 : []
5 : []
然后你可以从这里为每个键添加项目。