我有一个名单:
['john smith', 'sally jones', 'bob jones']
我想用以下格式构建一个字典:
{'john smith': [], 'sally jones': [], 'bob jones': []}
当我尝试使用zip
时会发生这种情况zip((all_crew_names, [[] for item in all_crew_names]))
[(['john smith', 'sally jones', 'bob jones'],), ([[], [], []],)]
我在这里做错了什么,我怎么能正确地把它拉上来?
答案 0 :(得分:12)
这里最简单的解决方案是词典理解:
names = ['john smith', 'sally jones', 'bob jones']
d = {name: [] for name in names}
请注意,使用dict.fromkeys(names, [])
可能很诱人,但这会导致相同的列表用于所有键。
答案 1 :(得分:7)
您不需要zip
。
{name: [] for name in all_crew_names}
在旧版本的Python中没有这样的字典理解,因此可以使用以下代码:
dict((name, []) for name in all_crew_names)
答案 2 :(得分:3)
您需要实际使用dict
构造函数,并且您有太多括号:
dict(zip(all_crew_names, [[] for item in all_crew_names])