Pythonの中で私が実際に私を驚かせるのは、このエラーです:TypeError: unhashable type
。理想的にはセットに基づくオブジェクトを属性として比較する| TypeError:Unhashable type
私はこのように集合演算子を使用することができますので、私はだけではなく、リストのセットを使用したデータ構造を持ちたい:私も私ので、セットが含まれているセットを作成することはできません
a = {({1,2}, 'alpha'), ({2,3}, 'beta')}
b = {({1,2}, 'alpha')}
c = a - b # c = {({2,3}, 'beta')}
TypeError: unhashable type: set
私はリストの代わりにセットを使用しようとします。この方法では、少なくともaとbの値を割り当てることができます。しかし、同じエラーに別のリードから1セットを減算する再びsetメソッドを使用して:
a = [({1,2}, 'alpha'), ({2,3}, 'beta')]
b = [({1,2}, 'alpha')]
c = list(set(a) - set(b)) # c = [({2,3}, 'beta')]
私は辞書代わりのリスト、同じエラーでそれを試してみました。
質問:質問:どのようにセットを含む要素を含む2つの束を比較できますか?
私は根本的に間違っていると思っていますか、 "pythonicではない"とエラーはデータ構造そのものに根付いていますか?
ありがとうございました!そのことのために正確に作成され
マフは
申し訳ありませんが、タイプミスでした。 – Raggamuffin
@Slamが提案したように、 '{1,2}'を 'frozenset([1,2]) 'に置き換えるとうまくいきます。 –