Python 集合 (set) 的 「& 与 and」和 「| 与 or」

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 的时候,判断的集合前后次序会对结果造成影响。

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值