Python集合(Sets)
从数学上讲,集合(Sets)是指不按特定顺序排列的元素集合, Python集与此数学定义类似,但具有以下附加条件。
- 集合中的元素不能重复。
- 集合中的元素是不可变的,但集合整体上是可变的。
- python集中的任何元素都没有索引,因此它们不支持任何索引或切片操作。
创建集合
通过使用set()函数或将所有元素放在一对大括号中可以创建一个集合。
Days=set(["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]) Months={"Jan","Feb","Mar"} Dates={21,22,17} print(Days) print(Months) print(Dates)
执行以上代码后,将产生以下输出。请注意元素的顺序在输出中如何变化。
set(['Wed', 'Sun', 'Fri', 'Tue', 'Mon', 'Thu', 'Sat']) set(['Jan', 'Mar', 'Feb']) set([17, 21, 22])
访问集合值
无涯教程无法访问集合中的单个值,如上所述,只能一起访问所有元素,但是也可以通过遍历集合来获得单个元素的列表。
Days=set(["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]) for d in Days: print(d)
Wed Sun Fri Tue Mon Thu Sat
添加元素
可以使用add()方法将元素添加到集合中,再次如所讨论的,新添加的元素没有附加特定的索引。
Days=set(["Mon","Tue","Wed","Thu","Fri","Sat"]) Days.add("Sun") print(Days)
set(['Wed', 'Sun', 'Fri', 'Tue', 'Mon', 'Thu', 'Sat'])
删除元素
无涯教程可以使用discard()方法从集合中删除元素,再次如所讨论的,新添加的元素没有附加特定的索引。
Days=set(["Mon","Tue","Wed","Thu","Fri","Sat"]) Days.discard("Sun") print(Days)
set(['Wed', 'Fri', 'Tue', 'Mon', 'Thu', 'Sat'])
并集运算
DaysA=set(["Mon","Tue","Wed"]) DaysB=set(["Wed","Thu","Fri","Sat","Sun"]) AllDays=DaysA|DaysB print(AllDays)
执行以上代码后,将产生以下输出。
set(['Wed', 'Fri', 'Tue', 'Mon', 'Thu', 'Sat'])
交集运算
在两个集合上进行相交运算会生成一个新集合,该集合仅包含两个集合中的公共元素,在下面的示例中,两个集合中都存在元素" Wed"。
DaysA=set(["Mon","Tue","Wed"]) DaysB=set(["Wed","Thu","Fri","Sat","Sun"]) AllDays=DaysA & DaysB print(AllDays)
set(['Wed'])
差集运算
对两个集合进行差分运算将生成一个新集合,该集合仅包含第一组元素,而第二组元素都不包含。在下面的示例中,两个集合中都存在元素" Wed",因此在输出集中将找不到该元素。
DaysA=set(["Mon","Tue","Wed"]) DaysB=set(["Wed","Thu","Fri","Sat","Sun"]) AllDays=DaysA - DaysB print(AllDays)
set(['Mon', 'Tue'])
比较集运算
无涯教程可以检查给定集合是另一个集合的子集还是超集,根据集合中存在的元素,输出为是或否。
DaysA=set(["Mon","Tue","Wed"]) DaysB=set(["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]) SubsetRes=DaysA=DaysA print(SubsetRes) print(SupersetRes)
True True
祝学习愉快! (发现内容有误?请选中要编辑的内容 -> 右键 -> 修改 -> 提交!帮助我们改进教程质量)
精选教程推荐
👇 以下精选教程可能对您有帮助,拓展您的技术视野
暂无学习笔记,成为第一个分享的人吧!
您的笔记将帮助成千上万的学习者