我想了解哪些项可以测试Python中的set成员资格。一般来说,集合成员资格测试的工作方式类似于Python中的list成员资格测试。在>>> 1 in {1,2,3}
True
>>> 0 in {1,2,3}
False
>>>
但是,集合与列表的不同之处在于它们不能包含不易损坏的对象,例如嵌套的集合。在
列出,好的:
^{pr2}$
设置,不工作,因为不可损坏:>>> {1,2,{1,2}}
Traceback (most recent call last):
File "", line 1, in
TypeError: unhashable type: 'set'
>>>
现在,即使集合不能是其他集合的成员,我们也可以在成员资格测试中使用它们。这样的检查不会导致错误。在>>> {1} in {1,2,3}
False
>>> {1,2} in {1,2,3}
False
>>> set() in {1,2,3}
False
>>>
但是,如果我尝试做同样的测试,其中被测试的元素是dict,我会得到一个错误,表明被测试的元素不能是不可修复的。在>>> {'a':1} in {1,2}
Traceback (most recent call last):
File "", line 1, in
TypeError: unhashable type: 'dict'
>>> {} in {1,2}
Traceback (most recent call last):
File "", line 1, in
TypeError: unhashable type: 'dict'
>>>
这不可能是全部,因为一个set可以在另一个集合中进行成员资格测试,即使它本身不易损坏,也会给出结果而不是错误。在
所以问题是:在Python中,什么使元素符合集合成员资格测试的条件?