一个class轮:从列表中创build索引作为关键字的字典

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

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,并想知道这是否可能。

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

会产生

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

enumerate(sequence, start=0)

返回一个枚举对象。 序列必须是一个序列,一个迭代器或其他支持迭代的对象。 由enumerate()返回的迭代器的next()方法返回一个tuple ,该tuple包含一个count(从start开始 ,默认为0)和迭代序列获得的值:

与另一个构造函数,你有

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

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

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

简单地使用列表理解。

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