什么和&做词典?

时间:2018-04-10 12:45:44

标签: python

我在这里观察到什么行为?

据我所知,&是按位AND运算符。为什么a & b会产生一个集合?

>>> a = {1, 2, 3}
>>> b = {3, 2, 1}
>>> a & b
>>> set([1, 2, 3])

2 个答案:

答案 0 :(得分:4)

它们不是字典,而是sets

>>> a = {1, 2, 3}
>>> b = {3, 2, 1}
>>> type(a)
<type 'set'>

&运算符应用于集合意味着设置intersection

至于你的例子,结果实际上是set([1, 2, 3])。设置a和设置b实际上是相同的,因为集合是无序集合:

>>> a == b
True
>>> a & b
set([1, 2, 3])

答案 1 :(得分:1)

它给出了两组的交集。

在Python中,下面的快速操作数可以用于不同的设置操作。

  • |为了工会。
  • &安培;交集。
  • - 差异
  • ^表示对称差异

以下是代码:

# Program to perform different set operations
# as we do in  mathematics

# sets are define
A = {0, 2, 4, 6, 8};
B = {1, 2, 3, 4, 5};

# union
print("Union :", A | B)

# intersection
print("Intersection :", A & B)

# difference
print("Difference :", A - B)

# symmetric difference
print("Symmetric difference :", A ^ B)