1

我有一个名字列表:

['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'],), ([[], [], []],)]

我在这里做错了什么,我该如何正确压缩它?

4

3 回答 3

12

这里最简单的解决方案是字典理解:

names = ['john smith', 'sally jones', 'bob jones']
d = {name: [] for name in names}

请注意,使用 可能很诱人dict.fromkeys(names, []),但这会导致所有键使用相同的列表。

于 2012-06-15T18:21:04.600 回答
7

你不需要zip

{name: [] for name in all_crew_names}

在旧版本的 Python 中没有这样的字典理解,因此可以使用以下代码:

dict((name, []) for name in all_crew_names)
于 2012-06-15T18:20:49.047 回答
3

您需要实际使用dict构造函数,并且括号太多:

dict(zip(all_crew_names, [[] for item in all_crew_names])
于 2012-06-15T18:24:03.090 回答