次のようなリストのリストがあります。
[['Tom', 'Dick'], ['Harry', 'John', 'Mike'], ['Bob']]
そして、各キーが名前で、各値がリスト内のサブリストの位置に対応する番号である辞書に変換したいと思います。
{'Tom': 0, 'Dick': 0, 'Harry': 1, 'John': 1, 'Mike': 1, 'Bob': 2}
さまざまなリスト内包表記を試しましたが、入れ子になったリストで正しく動作させることができませんでした。次のように、ネストされたループを使用できます。
names = [['Tom', 'Dick'], ['Harry', 'John', 'Mike'], ['Bob']]
names_dict = {}
for i, name_sublist in enumerate(names):
for name in name_sublist:
names_dict[name] = i
しかし、それを行うためのより短く、よりエレガントな方法があると思います。