在python集上使用intersect
方法或&
运算符之间有什么区别。我读到在以前的版本中,&
的参数必须是一个集合,而不仅仅是任何迭代,尽管似乎不再是这种情况。
在语义,约束,性能或简单的pythonic风格方面是否存在差异?
答案 0 :(得分:3)
这些方法可以绑定到名称以供以后使用,而运算符可以替换为operator
模块中的操作,以实现更大的抽象。
答案 1 :(得分:1)
功能上没有区别,尽管使用运算符的速度要快一些,因为Python特殊情况下可以访问这些方法。大多数程序的性能差异并不大,要求使用运算符。
答案 2 :(得分:1)
像 intersection()
这样的方法将接受任何可迭代对象,而运算符仅接受集合类型。
信息位于 docs 中的方法描述下方:
<块引用>注意,union()、intersection()、 difference() 和 symmetry_difference()、issubset() 和 issuperset() 方法将接受任何可迭代对象作为参数。相比之下,他们的 基于运算符的对应物需要设置它们的参数。