为什么不能使用子集运算符<;=,比较集合和不可变表集?E、 运行以下代码。有什么问题吗?感谢任何帮助。我使用的是python2.7。在
>>> from sets import ImmutableSet
>>> X = ImmutableSet([1,2,3])
>>> X <= set([1,2,3,4])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/sets.py", line 291, in issubset
self._binary_sanity_check(other)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/sets.py", line 328, in _binary_sanity_check
raise TypeError, "Binary operation only permitted between sets"
TypeError: Binary operation only permitted between sets
>>>
请改用^{} object;^{} module 已被弃用,无法与内置类型进行比较:
来自
sets
模块的文档:如果您一直使用
^{pr2}$sets
模块的代码,请在比较时只使用它的类型:Python
set
和frozenset
确实接受许多运算符和函数的任何序列,因此反转您的测试也可以工作:这同样适用于
sets.ImmutableSet
和sets.Set
类上的.issubset()
函数:但是,不要将不推荐的类型和新的内置类型混合使用是最好的选择。在
相关问题 更多 >
编程相关推荐