一个班轮:从列表创建一个字典,索引作为键

时间:2013-05-17 11:19:53

标签: python list dictionary python-3.x

我想从给定列表中创建一个字典,只需一行。字典的键将是索引,值将是列表的元素。像这样:

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}

对于为什么我需要一个行,我没有任何具体要求。我正在探索python,并想知道这是否可能。

5 个答案:

答案 0 :(得分:141)

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

将产生

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

enumerate(sequence, start=0)

     

返回枚举对象。 sequence 必须是序列,迭代器或其他支持迭代的对象。 next()返回的迭代器的enumerate()方法返回包含计数的tuple(从 start ,默认为0)和从迭代中获得的值< EM>序列:

答案 1 :(得分:32)

使用另一个构造函数,你有

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

答案 2 :(得分:14)

尝试enumerate:它将返回元组(i, a[i])的列表(或迭代器),您可以从中构建dict

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

答案 3 :(得分:10)

{x:a[x] for x in range(len(a))}

答案 4 :(得分:1)

只需使用列表理解。

setState