Python 集合 (set) 的 「& 与 and」和 「| 与 or」
大家好,我是一个喜欢研究算法、机械学习和生物计算的小青年,我的CSDN博客是:一骑代码走天涯
如果您喜欢我的笔记,那么请点一下关注、点赞和收藏。如果內容有錯或者有改进的空间,也可以在评论让我知道。😄
直接先上代码:
a = set(["a", "b", "c", "d"])
b = set(["c", "d", "e", "f"])
c = set()
print("a & b: ", a & b)
print("a & c: ", a & c)
print("a | b: ", a | b)
print("b | a: ", b | a)
print("c | b: ", c | b)
print("b | c: ", b | c)
print("a and b: ", a and b)
print("b and a: ", b and a)
print("a and c: ", a and c)
print("c and a: ", c and a)
print("a or b: ", a or b)
print("b or a: ", b or a)
print("a or c: ", a or c)
print("c or a: ", c or a)
列印结果
a & b: {‘c’, ‘d’}
a & c: set()
a | b: {‘b’, ‘c’, ‘d’, ‘a’, ‘e’, ‘f’}
b | a: {‘b’, ‘c’, ‘d’, ‘a’, ‘e’, ‘f’}
c | b: {‘e’, ‘c’, ‘d’, ‘f’}
b | c: {‘e’, ‘c’, ‘d’, ‘f’}
a and b: {‘e’, ‘c’, ‘d’, ‘f’}
b and a: {‘b’, ‘a’, ‘d’, ‘c’}
a and c: set()
c and a: set()
a or b: {‘b’, ‘a’, ‘d’, ‘c’}
b or a: {‘e’, ‘c’, ‘d’, ‘f’}
a or c: {‘b’, ‘a’, ‘d’, ‘c’}
c or a: {‘b’, ‘a’, ‘d’, ‘c’}
显而易見,&, and 和 |, or 虽然分別都代表「和」和「或者」,但是对于集合来说是有差异的。以下会分別讲解下每个符号的差別:
位运算符 &: 直接返回两个sets之间的共同元素的新集合,所以如果其中一个是空集合,那结果便是空集合。
位运算符 |: 直接返回两个sets所有元素的新集合,所以无论两者之一有没有空集合或者前后顺序不同,结果都是把所有元素加起来。
所以,用 &, | 的时候,集合的次序顺着放或者倒着放都不會影响结果。
逻辑运算符 and: 这个用来判断两个集合是否都为True (i.e., 都不是空集合)。如果结果為 True, 便返回判断式后面的集合,False的话就返回空集合。
逻辑运算符 or: 这个用来判断两个集合是否其中之一为True (i.e., 至少一个不是空集合)。如果结果為 True, 便返回判断式前面的集合,False的话就返回空集合。
所以,用 and, or 的时候,判断的集合前后次序会对结果造成影响。