Python学习笔记——集合

集合是一种无序且不重复的数据结构,可以动态地增删元素。

创建集合

集合用大括号{ }表示:

fruit = {'apple','orange','pear','banana'}

创建空集合可以用set(),但不可用{ }。{ }表示创建空字典。set()还可以将其它序列,比如列表和元组转换成集合。
集合与列表最大的差异就是集合中不会出现重复的元素。因此,即使创建集合时所给的值有重复,或者所用的列表或元组中有重复,得到的集合都不会有重复的元素。
如输入

fruit = {'apple','orange','apple','pear','orange','banana'}

得到的fruit是

{'apple','orange','pear','banana'}

集合的访问与操作

集合的常见操作和访问操作函数如下:
设s = {2,3,5,7,11}

函数示例结果说明
len()len(s)5返回集合中元素的数量
min()min(s)2返回集合中最小的元素
max()max(s)11返回集合中最大的元素
sum()sum(s)28返回集合中最大的元素
add()s.add(13){2,3,5,7,11,13}将一个元素加入集合中
remove()s.remove(3){2,5,7,11}从集合删除一个元素,若不存在,则抛出KeyError异常

虽然集合是无序的,但仍可以用for循环历遍集合中的每个元素:

for i in s:
	print(i)
2
3
4
7
11

元素、子集、超集和相等的判断

与序列类似,可以用in和not in判断某个元素是否再集合中。

s = {2,3,5,7,11}
5 in s
True

此外,还可以判断两个集合的关系。可以用方法,也可以直接用运算符。

s1 = {2,3,5,7}
s2 = {1,2,3,4,5,6,7}
print(s1.issubset(s2))  #子集
True
print(s1<s2)  #子集
True
print(s2.issuperset(s1))  #超集
True
print(s1>s2)  #超集
s3 = {5,7,3,2}
print(s1==s3)
True

集合的运算

集合可以进行:并集、交集、差集和对称差集的运算,这些运算可以用方法,也可以直接用运算符。这些运算都产生新的集合而不会对原来集合产生任何修改。

运算方法运算符
并集union()|
交集intersection()&
差集difference()-
对称差集symmetric_difference()^

对称差集是指两者共同元素以外的所有元素。

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页