2

对不起,如果一个重复的问题,新的编程无法找到任何合适的答案。我正在尝试将列表转换为字典。键为 x[1],值为 x[2]

为了清楚起见,我有一个 *3 数组,需要将其转换为以第 2 列作为键、第 3 列作为值的字典。

我试过了:

for entry in data:
     keys=entry[1]
     values=entry[2]

source = dict.fromkeys(keys, values)

收到错误“类型列表不可散列”

经历了问题 4576115。但是,我需要遍历 3000+ *3 数组的每个元素,其中大多数元素本身都是列表,然后将每个条目的第二个元素设置为键,将第三个元素设置为值。只是为了放大,也尝试过

b = {data[i][1]: data[i][2] for i in range(0, len(data))}

并输入数据:

keys=entry[1]
values=entry[2]
b.update(keys,values)

keyList.append(keys)
valueList.append(values)
b = dict(zip(keyList,valueList))

b={entry[1]:entry[2] for entry in data} 

同样的问题-错误“列表”不可散列

好的,对不起。知道了。问题是关键本身就是列表。我正在查看数组并错过了元素

4

1 回答 1

8

不是很明白,但是这不就是你想要的吗?

>>> a = [[1,2,3],[2,3,4],[4,5,6]]
>>> b = {x[1]:x[2] for x in a}
>>> b
{2: 3, 3: 4, 5: 6}
>>> 
于 2013-09-18T16:25:33.650 回答