将列表转换为字典,索引为键

时间:2018-05-19 17:52:36

标签: python

list转换为dictionary,其中键作为元素的索引,值作为列表中的值。我试图创建它但面临错误。我现在的代码是

for each in list:
    dict[each] = list[each]

我的代码有什么问题。我是python的初学者。

3 个答案:

答案 0 :(得分:3)

dict = {}
for each in list:
    dict[each] = list[each]

获取数组list = [1,2,34,22]示例

dict[1] = list[1]  # list[1] = 2
dict[2] = list[2]  # list[2] = 34
dict[34] = list[34]  # Error size is just 4 , accessing list[34] will give index error

试试这个简单的代码

a = [1,2,34,22]

dict = {}
for i in  range(len(a)):
  dict[i]=a[i]
print(dict)

答案 1 :(得分:3)

尝试使用枚举!它很漂亮:

list = ['a','b','c']

print(dict(enumerate(list))) # >>> {0: 'a', 1: 'b', 2: 'c'}

你的代码出了什么问题,就是你要把列表中的两个元素(用list [value]语法下标)并将它们设置为彼此相等。

你打算做什么:

   d = {}
    l = ['a','b','c']
    for k,v in enumerate(l):
        d[k] = v

这是做什么的:

枚举一个序列会给你一个元组,其中一个整数与序列的值配对。就像我上面的列表中一样,枚举(list)本身就是:

for k in enumerate([1,2,3]):
print(k)

结果:(0,1)         (1,2)         (2,3)

循环中的k和v首先用于循环我写入解包元组(k =元组的索引0,v =第二个),预定义的dict(在我的情况下为d)设置枚举值(d [k],密钥)到值k(枚举后元组的第二个值)

希望这是有道理的!

答案 2 :(得分:1)

以下代码将起作用

lst = [1,2,3,4]
result = {i:j for i,j in enumerate(lst)}