python中的一件事讓我非常難過,就是這個錯誤:TypeError: unhashable type
。比較基於集合的對象作爲屬性| TypeError:難以置信的類型
理想我想有在那裏我只是用的不是列表集的數據結構,所以我可以使用集合運算符是這樣的:
a = {({1,2}, 'alpha'), ({2,3}, 'beta')}
b = {({1,2}, 'alpha')}
c = a - b # c = {({2,3}, 'beta')}
我甚至不能創建一組包含組,因爲我得到的TypeError: unhashable type: set
所以我嘗試使用列表而不是一組。這樣我可以至少分配a和b的值。但再次使用set方法從另一個導致同樣的錯誤。減去一組:
a = [({1,2}, 'alpha'), ({2,3}, 'beta')]
b = [({1,2}, 'alpha')]
c = list(set(a) - set(b)) # c = [({2,3}, 'beta')]
我有一本字典,而不是一個列表,同樣的錯誤嘗試。
問題:如何比較兩個包含某些元素包含集合的串?
或者我認爲根本錯誤/「不pythonic」和錯誤根源於數據結構本身?
感謝您的幫助!
莫夫
對不起,這是一個錯字! – Raggamuffin
對,現在@Slam建議,用'frozenset([1,2])替換'{1,2}''會起作用。 –