の辞書にリストのリストを変換:私はリストのリストを変換しようとしているリスト
x = [[1, 2], [1, 3], [1, 3, 4], [1, 2, 5]]
各リストのインデックスが(辞書のキー開始されたリストの辞書に1):
new_dictionary = {1: [1, 2], 2: [1, 3], 3: [1, 3, 4], 4: [1, 2, 5]}
私は大きなリストを使って作業しますが、効率的なやり方はありますか?
の辞書にリストのリストを変換:私はリストのリストを変換しようとしているリスト
x = [[1, 2], [1, 3], [1, 3, 4], [1, 2, 5]]
各リストのインデックスが(辞書のキー開始されたリストの辞書に1):
new_dictionary = {1: [1, 2], 2: [1, 3], 3: [1, 3, 4], 4: [1, 2, 5]}
私は大きなリストを使って作業しますが、効率的なやり方はありますか?
はい、dict
コンストラクタは、最初の項目がキーで2番目が値であるタプルの繰り返し可能なものを取ります。
これはまさにenumerate
戻っている:
new_dictionary = dict(enumerate(x))
その後new_dictionary
が含まれています:最初のキーは0
、ない1
であること
{0: [1, 2], 1: [1, 3], 2: [1, 3, 4], 3: [1, 2, 5]}
お知らせ。あなたは、一つまたは何か他のものから始めるenumerate
でstart=1
パラメータを使用する場合:
>>> dict(enumerate(x, start=1))
{1: [1, 2], 2: [1, 3], 3: [1, 3, 4], 4: [1, 2, 5]}
私はあなたのユースケースについて好奇心、しかし、リストや辞書ので、非常によく似た方法で使用することができます
>>> x[0]
[1, 2]
>>> new_dictionary[0]
[1, 2]
本当にこのための辞書が必要ですか?
'start = 1'を使うと良いです(OP _really_がそれを望んでいると仮定して) –
' start = 1'で、キーはもはや元のインデックスと一致しません。 – TigerhawkT3
ええ、例と説明は矛盾しています: "各リストのインデックスは辞書のキーです"そして次に1から始まる。良い点。 –
あなたはこのようdict comprehension
を使用する必要があります。
new_dictionary = {index + 1: value for index, value in enumerate(x)}
は、Python配列が0インデックス、1は、索引付けされていないことに注意してください。 – TigerhawkT3
その他:あなたはなぜそれを望みますか? –
@tobias_k - それも知っているのは好奇妙です。各キーが入力リストのインデックスである辞書は、機能的にはリストと同じです。それは意味がないようです。 – TigerhawkT3