Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将列表转换为索引为键的字典_Python - Fatal编程技术网

Python 将列表转换为索引为键的字典

Python 将列表转换为索引为键的字典,python,Python,将列表转换为字典,键作为元素的索引,值作为列表中的值。我试图创建它,但遇到了错误。下面是我当前的代码 for each in list: dict[each] = list[each] 我的代码有什么问题。我是python的初学者。以下代码可以使用 lst = [1,2,3,4] result = {i:j for i,j in enumerate(lst)} 以数组list=[1,2,34,22]为例 dict[1] = list[1] # list[1] = 2 dict[2]

列表
转换为
字典
,键作为元素的索引,值作为列表中的值。我试图创建它,但遇到了错误。下面是我当前的代码

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

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

以下代码可以使用

lst = [1,2,3,4]
result = {i:j for i,j in enumerate(lst)}
以数组
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)

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

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
它的作用是:

枚举序列会得到一个元组,其中整数与序列的值成对出现。与上面的列表一样,枚举(列表)本身将是:

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(枚举后元组的第二个值)


希望这有意义

你能帮我理解我代码中的错误吗?看我的答案,它解释了错误的原因。你没有将
dict
定义为字典对象。此外,您还将列表的每个值指定为字典的键和值。欢迎使用SO,您实际上是在列表上应用for循环,而不使用索引方法,您使用的是直接方法-简单地迭代元素,
each
的值基本上是元素值,而不是索引值,如果您想使用索引方法,请尝试此方法-
对于范围内的i(0,len(list):dict[i]=list[i]
。这样就行了。什么问题不再是市场重复问题?回答是浪费时间SMH@AaronBrandhagen这就是为什么我们不删除重复的问题。标记为重复的问题保留下来作为指导帖子。但我们不希望答案分散。我们希望所有答案都在同一个位置,因为这样做很容易r找到答案,对其进行投票和评论。现有答案已经被投票,最好的答案已经上升到顶部。如果你开始重新发布相同的答案,而不是像傻瓜一样结束问题,所有的投票和评论都必须再次发生。@AaronBrandhagen我已经记不清有多少次n00b(重新计算)张贴垃圾答案(思考或类似)我必须解释为什么这是不好的。我不想每次有人决定转载我过去评论过的答案时都重复我自己。这是浪费每个人的时间。如果每个答案只存在一次,并且它们都存在于同一个问题上,我们都会过得更好。精彩的答案:)谢谢!刚才添加的信息,我看到你想知道为什么你的不工作:)编辑:以为你是OP:S lol对不起。
for k in enumerate([1,2,3]):
print(k)