1

名前のリストがあります:

['john smith', 'sally jones', 'bob jones']

次の形式でdictを作成したい:

{'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 に答える