. 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}
q8l4jmvw1#
没有区别。事实上,在关于集合的python官方文档中,它们是一起编写的。有一点不同:一个是运算符,所以它有特定的运算符优先级(例如,如果与其他集合运算符混合)。2在函数的情况下,函数括号明确地固定优先级。
ig9co6j12#
原来的答案不太正确:另一个区别是union可以在任何可迭代对象上工作。注意,union()、intersection()、difference()、symmetric_difference()、issubset()和issuperset()方法的非运算符版本将接受任何可迭代对象作为参数。相反,它们基于运算符的对应方法要求它们的参数是集合。这排除了容易出错的构造,如set('abc ')& 'cbs',而支持更可读的set('abc').intersection('cbs '。例如
union
>>> {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'
2条答案
按热度按时间q8l4jmvw1#
没有区别。
事实上,在关于集合的python官方文档中,它们是一起编写的。
有一点不同:一个是运算符,所以它有特定的运算符优先级(例如,如果与其他集合运算符混合)。2在函数的情况下,函数括号明确地固定优先级。
ig9co6j12#
原来的答案不太正确:另一个区别是
union
可以在任何可迭代对象上工作。注意,union()、intersection()、difference()、symmetric_difference()、issubset()和issuperset()方法的非运算符版本将接受任何可迭代对象作为参数。相反,它们基于运算符的对应方法要求它们的参数是集合。这排除了容易出错的构造,如set('abc ')& 'cbs',而支持更可读的set('abc').intersection('cbs '。
例如
对比