【发布时间】:2018-11-29 16:11:15
【问题描述】:
假设我们有x = ['a', 'b']。
语句的幕后发生了什么:
x not in {None, False}
这会引发unhashable type: 'list' 错误?
我发现的解决方法是改写这个:
x != None and x!= False
但我很困惑,因为在数学上,两个布尔表达式是等价的。
【问题讨论】:
-
出于好奇,您能用文字描述一下您真正想要实现的目标吗?我怀疑这两种选择都不是您真正想要的。
-
x不可散列,因此它不能在您的set中 -
您正试图找出一个列表对象是否在一组两个值中(意味着集合中的两个值中的一个是否是一个列表)。列表不能被散列,因此不能成为集合的一部分,因此不可比较。您希望该操作做什么?
-
[] in set()引发错误而不是评估False是否有一些理由? -
@Patrick Python 警告你无意义的操作,而不是悄悄地失败。
标签: python python-3.x