将list
转换为dictionary
,其中键作为元素的索引,值作为列表中的值。我试图创建它但面临错误。我现在的代码是
for each in list:
dict[each] = list[each]
我的代码有什么问题。我是python的初学者。
答案 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)}