-2

したがって、次のようなオブジェクトのリストがあります。

['bob', 'tob', 'mom'], ['tom', 'apa'], ['cat']

そして、次のような辞書の辞書を作成したいと思います:

{
    {0: 'bob', 1: 'tob', 2: 'mom'},
    {0: 'tom', 1: 'apa'},
    {0: 'cat'}
}

これを行うためのpythonicの方法は何ですか? ありがとう!

4

2 に答える 2

3

インデックスが値にマップされているoflistを ofに変換したいだけのようです。listsetdict

seta は s のようなハッシュ不可能な値を保持できないため、それはできませんdictlistしかし、それらのに簡単に変換できdictsます。

それぞれをjust bylistに変換できます。これにより、元のリストとまったく同じ方法で使用できるリストが得られます(つまり、 と同じものが返されます)。dictdict(enumerate(l))listd[0]l[0]

それらをリストにまとめるには、リスト内包表記を使用します。

>>> l=[['bob','tob','mom'],['tom','apa'],['cat']]
>>> d=[dict(enumerate(i)) for i in l]
>>> d
[{0: 'bob', 1: 'tob', 2: 'mom'}, {0: 'tom', 1: 'apa'}, {0: 'cat'}]
于 2012-12-21T23:22:43.257 に答える
0
index_as_key = dict(enumerate(['bob','tob','mom']))

リストを繰り返し処理しているときにリスト項目のインデックスが必要な場合は、中間辞書を作成する必要はありません。

for i, item in enumerate(['bob','tob','mom']):
    # do something
于 2012-12-21T23:23:34.723 に答える