2017-06-12 10 views
0

のは、私は2つの要素は、どのように私はPythonで辞書を使用して相互にタプルの2つの要素をマッピングすることができますか?

(a, b) 

どのように私はそれが私が

を試してみました

{a : b} 

のように見えるように、第2の最初の要素をマッピングした辞書を作成することができていたタプルを持っているとしましょう

new_dict = {tup[0]:tup[1]} 

が、私は

TypeError: unhashable type 'list'

を受け取ります
+0

'{tup [0]:tup [1]}'である可能性があります。 –

+0

これまでに何を試しましたか? – Nurjan

+0

私はnew_dict = {tup [0]:tup [1]}を試しましたが、 "TypeError:unhashable type 'リスト"を受け取っています –

答えて

0

あなたが受信しているエラーは、あなたの鍵aがキーとして使用することはできませんリスト、であることを意味します。この

(['item'], 'value') 

ような何か何あなたはおそらくしたいことは一般的に

('key', 'value') 

で、辞書のキーは文字列である、ではないが厳密にそう。整数やその他の不変型であってもかまいません。 「不変」とは、その場所で更新できないことを意味します。リストには、それが適切にハッシュ化することができないので、アイテムを追加または削除することによって、その場で更新することができ、、その後、キーとして使用することはできません。

0

エラーメッセージは、タプルの最初の項目がリストであることを示しています。リストは変更可能であるため、辞書キーにすることはできませんが、タプルは可能です。したがって、リストからタプルに変換するキーをリストからタプルに変換してください:

new_dict = { tuple(tup[0]), tup[1] } 
関連する問題