鱼C论坛

 找回密码
 立即注册
查看: 1376|回复: 0

[学习笔记] 集合-上

[复制链接]
发表于 2023-3-9 22:46:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
>>> # 使用花括号,元素之间以逗号分隔:{"FishC", "Python"}
>>> # 使用集合推导式:{s for s in "FishC"}
>>> # 使用类型构造器,也就是 set():set("FishC")
>>> aa = {"FishC", "Python"}
>>> aa
{'FishC', 'Python'}
>>> bb = {s for s in "FishC"}
>>> bb
{'C', 's', 'i', 'h', 'F'}
>>> cc = set("FishC")
>>> cc
{'C', 's', 'i', 'h', 'F'}
>>> # 集合具有随机性
>>> "C" in aa
False
>>> "FishC" in aa
True
>>> "C" in cc
True
>>> # 访问集合
>>> for each in aa:
...         print(each)
...
FishC
Python
>>> for each in cc:
...         print(each)
...
C
s
i
h
F
>>> set([1, 2, 2, 3, 5])
{1, 2, 3, 5}
>>> s = [1, 1, 2, 3, 5]
>>> len(s) == len(set(s))
False
>>> # 去重
>>> set([1, 2, 2, 3, 5])
{1, 2, 3, 5}
>>> s = [1, 2, 3, 5]
>>> len(s) == len(set(s))
True
>>> t = s.copy()
>>> t
[1, 2, 3, 5]
>>> # 如果我们要检测两个集合之间是否毫不相干,可以使用 isdisjoint(other) 方法
>>> s = set("FishC")
>>> s
{'C', 's', 'i', 'h', 'F'}
>>> s.isdisjoint(set("p"))
True
>>> s.isdisjoint(set("i"))
False
>>> # 如果我们要检测该集合是否为另一个集合的子集,可以使用 issubset(other) 方法:
>>> s.issubset("FishC.com.cn")
True
>>> # 如果我们要检测该集合是否为另一个集合的超集,可以使用 issuperset(other) 方法(对于两个集合 A、B,如果集合 B 中任意一个元素都是集合 A 中的元素,我们就说这两个集合有包含关系,称集合 A 为集合 B 的超集):
>>> s.issuperset("FishC")
True
>>> # 并集
>>> s.union({1, 2, 3})
{1, 2, 'h', 'C', 's', 'F', 3, 'i'}
>>> # 交集
>>> s.intersection("Fish")
{'h', 'F', 's', 'i'}
>>> s
{'C', 's', 'i', 'h', 'F'}
>>> # 差集
>>> s.difference("Fish")
{'C'}
>>> # 多参数
>>> s.union({1,2,3}, "Python")
{1, 2, 3, 'C', 'o', 'y', 't', 'h', 'n', 's', 'i', 'F', 'P'}
>>> s.intersection("php", "Python")
{'h'}
>>> s
{'C', 's', 'i', 'h', 'F'}
>>> s.difference("Php", "Python")
{'C', 's', 'F', 'i'}
>>> # 求对称差集,就是排除掉 s 集合和 other 容器中共有的元素后,剩余的所有元素,这个只能支持一个参数:

>>> >>>
>>> s.symmetric_difference("Python")
{'n', 'o', 'C', 's', 'y', 't', 'i', 'F', 'P'}
>>> # 检测子集可以使用小于等于号(<=):
>>> s <= set("FishC")
True
>>> s
{'C', 's', 'i', 'h', 'F'}
>>> # 检测真子集我们可以使用小于号(<)
>>> s < set("FishC")
False
>>> s < set("FishC.com.cn")
True
>>> # 使用大于号(>)和大于等于号(>=)就是检测真超集和超集:

>>> >>>
>>> s > set("FishC")
False
>>> s >= set("FishC")
True
>>> # 并集使用管道符(|):
>>> s | {1, 2, 3} | set("JAVA")
{'A', 1, 2, 3, 'C', 's', 'J', 'i', 'h', 'F', 'V'}
>>> 交集使用 and 符号(&):
>>> s
{'C', 's', 'i', 'h', 'F'}
>>> s & set("Php") & set("Python")
{'h'}
>>> # 差集使用减号(-):
>>> s - set("Php") - set("Python")
{'C', 'F', 's', 'i'}
>>> # 对称差集使用脱字符(^)
>>> s ^ set("Python")
{'o', 'C', 'y', 't', 'n', 's', 'i', 'F', 'P'}

评分

参与人数 2荣誉 +2 鱼币 +1 贡献 +2 收起 理由
sfqxx + 1 + 2
歌者文明清理员 + 1 + 1 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-24 02:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表