在Built-in
类型set
的帮助下,我找到了other
十字路口(其他,......) 集&其他& ...
返回一个新集合,其中包含集合和所有其他元素共有的元素。
我的问题是其他类型的限制是什么,它是可迭代的还是任何可转换为set
类型的?
答案 0 :(得分:2)
阅读documentation的其余部分:
注意,
union()
,intersection()
,difference()
和symmetric_difference()
,issubset()
和issuperset()
方法的非运营商版本< strong>将接受任何可迭代的参数。相比之下,他们基于运营商的同行要求他们的论点是集合。
(强调我的。)
答案 1 :(得分:1)
调用http://article.gmane.org/gmane.comp.web.nginx.english/181(第1236行)source,会检查other
是set
,frozenset
还是子类型。
如果此检查失败,则使用other
作为参数调用PyAnySet_Check
以获取迭代器。
因此任何具有与set
或frozenset
关系的可迭代或对象都可以。
答案 2 :(得分:1)
这取决于。对于某些方法,例如intersection()
,other
可以是任何可迭代的,而对于某些方法的某些基于运算符的对应方,例如issubset()
(运算符对应方为<=
),{{ 1}}也必须是一个集合。你也可以自己测试一下。这里有一些例子:
other