![Python基础视频教程](https://wfqqreader-1252317822.image.myqcloud.com/cover/276/29126276/b_29126276.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
3.4 set
set(集合)可以被看成没有“值”的dict,即只有“键”,没有“值”。set通常用于检查某个“键”是否在集合中。
3.4.1 set的定义
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_35.jpg?sign=1739286635-QrLOkibFmMAdNe9hNgZ0PaAwzNOGwi5L-0-574604432774fee3dbf4c016249b6c73)
与dict类似,set也是用花括号定义的,不过只有“键”,没有“值”。有一点值得注意,如果声明一个空集合,就必须用到“set()”,这是因为“{}”表示空dict。
3.4.2 set插入数据
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_36.jpg?sign=1739286635-Uf07EJwioXum85QMpCcwCVhZWkMijsdC-0-2e275642fa44d412c4b8601f6d632f51)
通过add方法新增集合中的数据。从上述例子中可以看到,就算“add”多次同样的数据,集合中也不会多次出现这些数据,因为集合中存储的数据都是去重后的。
3.4.3 set删除数据
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_37.jpg?sign=1739286635-d9Gas9zF9oF3x7C8XrJNb0TAKrGumhSN-0-7f73d4c3fbe5b5f35201d957f1d0cac7)
remove方法的作用是删除集合中的数据。如果要删除的数据不在集合中,就会报错。
3.4.4 set的常用方法
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_39.jpg?sign=1739286635-Lqp22TwDgzbRzYHHIN8PNvvKQKaxCL2o-0-6188ed268e52f0f5c9e0e59f33b5f97d)
set同样可以用“in”关键字判断集合中是否有某个元素,set也可以用len函数获取当前集合的长度。
3.4.5 set运算
想必大家在中学数学课中学习过集合。集合的几个常用运算包括交集、并集和子集等。
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_40.jpg?sign=1739286635-3auDx35shdlVvzmIG5gdqkYQiumtzmy3-0-ad147a0336734b30a7304b4d650e1c8e)
“a & b”求a和b的交集。
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_41.jpg?sign=1739286635-41pkk4lkmsymu9b1tbcgWWaesp29zizf-0-46dda6706bc386d0c9a67d162aa5b5d6)
“a | b”求a和b的并集。
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_42.jpg?sign=1739286635-dxF2gvUHCIDMDuEPL5ghq7BIauxKnDYZ-0-d5da2d776930183688c1dc8ef1820c24)
“a.issubset(b)”判断a是否是b的子集。
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_43.jpg?sign=1739286635-p3EHG9gBnurVaXue85296iR36BlJ9okJ-0-f5e207a179df76dbf22f0dd36bbe226c)
“b.issubset(a)”判断b是否是a的子集。
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_44.jpg?sign=1739286635-O3jHn48ujT4Je3YnfyZEvrvy8WERiws5-0-38540ccfa33af5f575341a48a48d5cbb)
“b - a”求b和a的差集。