[英]Python TypeError: unhashable type: 'list'
我正在嘗試運行有效執行以下操作的程序:
if [4, 5, False, False, False, False] in {}
而且,在這一行上,我收到一個TypeError: unhashable type 'list'
我究竟做錯了什么?
if foo in {}
的代碼if foo in {}
檢查字典的任何鍵是否等於foo
。
在您的示例中, foo
是一個列表。 列表是不可散列的類型,不能作為字典的鍵。
如果要檢查字典的鍵或集合中是否包含列表的任何條目,可以嘗試:
if any([x in {} for x in (4, 5, False)])
。
如果要檢查任何值是否等於列表,可以嘗試:
if any([v == [4, 5, False, False, False, False] for v in your_dict.values()])
set
包含可哈希對象,這意味着它們是可排序的,並且啟用了有效的搜索/插入方法。 另一方面, list
不可散列。 這就是為什么您的代碼會出錯。 我建議使用tuple
而不是list
。
if (4, 5, False, False, False, False) in {}:
...
你可以做類似的事情
if all(x in {} for x in [4, 5, False, False, False, False]):
....
要么
if any(x in {} for x in [4, 5, False, False, False, False]):
....
取決於你想要什么
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.