web-dev-qa-db-ja.com

ワンライナー:インデックスをキーとしてリストから辞書を作成

与えられたリストから辞書を作成したいたった1行で。辞書のキーはインデックスになり、値はリストの要素になります。このようなもの:

a = [51,27,13,56]         #given list

d = one-line-statement    #one line statement to create dictionary

print(d)

出力:

{0:51, 1:27, 2:13, 3:56}

one lineが必要な理由に関する特定の要件はありません。私はただpythonを調査していて、それが可能かどうか疑問に思っています。

82
Nawaz
a = [51,27,13,56]
b = dict(enumerate(a))
print(b)

生産します

{0: 51, 1: 27, 2: 13, 3: 56}

enumerate(sequence, start=0)

列挙オブジェクトを返します。 sequenceは、シーケンス、iterator、またはその他のオブジェクトでなければなりません反復をサポートします。 next()によって返されるイテレータのenumerate()メソッドは、カウント(fromstart(デフォルトは0)および取得した値を含むTupleを返しますsequenceの繰り返し:

145
glglgl

別のコンストラクターを使用すると、

a = [51,27,13,56]         #given list
d={i:x for i,x in enumerate(a)}
print(d)
32
kiriloff

enumerateを試してください:タプル(i, a[i])のリスト(または反復子)を返します。そこからdictを作成できます:

a = [51,27,13,56]  
b = dict(enumerate(a))
print b
14
{x:a[x] for x in range(len(a))}
11

リスト内包表記を使用するだけです。

a = [51,27,13,56]  
b = dict( [ (i,a[i]) for i in range(len(a)) ] )
print b
2
Shahrukh khan