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 配列の各要素を繰り返し処理し、ほとんどの要素自体をリストにしてから、各エントリの 2 番目の要素をキーとして、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 に答える