.union和. union之间的区别是什么|用于Python中的集合?

deyfvvtc  于 2023-03-04  发布在  Python
关注(0)|答案(2)|浏览(167)

. union和之间的区别是什么|用于python中的集合?

>>> a = set([1, 2, 3, 4])
>>> b = set([3, 4, 5, 6])

>>> a|b
{1, 2, 3, 4, 5, 6}

>>> a.union(b)
{1, 2, 3, 4, 5, 6}
q8l4jmvw

q8l4jmvw1#

没有区别。
事实上,在关于集合的python官方文档中,它们是一起编写的。
有一点不同:一个是运算符,所以它有特定的运算符优先级(例如,如果与其他集合运算符混合)。2在函数的情况下,函数括号明确地固定优先级。

ig9co6j1

ig9co6j12#

原来的答案不太正确:另一个区别是union可以在任何可迭代对象上工作。
注意,union()、intersection()、difference()、symmetric_difference()、issubset()和issuperset()方法的非运算符版本将接受任何可迭代对象作为参数。相反,它们基于运算符的对应方法要求它们的参数是集合。这排除了容易出错的构造,如set('abc ')& 'cbs',而支持更可读的set('abc').intersection('cbs '。
例如

>>> {1, 2}.union([1, 3])
{1, 2, 3}

对比

>>> {1 ,2} | [1, 3]
Traceback (most recent call last):
(...)
  File "<input>", line 1, in <module>
TypeError: unsupported operand type(s) for |: 'set' and 'list'

相关问题