![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=1738982152-jRXYRw3h48CPNhAdBR6cLVsXUJAnNrt2-0-2762a7f95c6417229329dfb461cdaa4e)
与dict类似,set也是用花括号定义的,不过只有“键”,没有“值”。有一点值得注意,如果声明一个空集合,就必须用到“set()”,这是因为“{}”表示空dict。
3.4.2 set插入数据
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_36.jpg?sign=1738982152-qNbD01077x6ryXqSJumVPtYnCtGcKpGY-0-2ea0e1f3b9f88db52e47165f98961b46)
通过add方法新增集合中的数据。从上述例子中可以看到,就算“add”多次同样的数据,集合中也不会多次出现这些数据,因为集合中存储的数据都是去重后的。
3.4.3 set删除数据
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_37.jpg?sign=1738982152-TRDH7iaVgkLrjMDORaV8o7o7YDYZF8lI-0-4afa97904f37567076cf3cd05487ead9)
remove方法的作用是删除集合中的数据。如果要删除的数据不在集合中,就会报错。
3.4.4 set的常用方法
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_39.jpg?sign=1738982152-8M2nZU2gfCKkNY9soVInfeagOaNAKXhh-0-22659826798a931422533350add2d229)
set同样可以用“in”关键字判断集合中是否有某个元素,set也可以用len函数获取当前集合的长度。
3.4.5 set运算
想必大家在中学数学课中学习过集合。集合的几个常用运算包括交集、并集和子集等。
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_40.jpg?sign=1738982152-GlIXaPosuVBvWPihEFQrPobCq3wlZEg4-0-df8f0a1cef411927a626c9dfebaf4127)
“a & b”求a和b的交集。
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_41.jpg?sign=1738982152-4j8yNj22MN36PRLu0GvCDWhbweBM0T3d-0-8c5de1b8d5b8bb6d3ae8f5ce9af635d7)
“a | b”求a和b的并集。
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_42.jpg?sign=1738982152-XkpR1YF0FBlLfLPyu14A9oinfetgRESH-0-2729200fd5c6f99378193ab1d9304979)
“a.issubset(b)”判断a是否是b的子集。
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_43.jpg?sign=1738982152-doYjtx6b2FV0KAfqqp2syjoWN7gUsfwV-0-2750ec02dfacbe9b96456dd2cad262e3)
“b.issubset(a)”判断b是否是a的子集。
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_44.jpg?sign=1738982152-p2VCBCKFJnUloxdhKeZWz8gebGA0Vdck-0-3f9f51416111ba896787fc5631b67852)
“b - a”求b和a的差集。