![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=1738972590-D40BFcVuEUxaJKogZiJLhsltp6jOEUfe-0-e65ff01d3876fa3a0cc68a3c82552ad5)
与dict类似,set也是用花括号定义的,不过只有“键”,没有“值”。有一点值得注意,如果声明一个空集合,就必须用到“set()”,这是因为“{}”表示空dict。
3.4.2 set插入数据
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_36.jpg?sign=1738972590-8JqDFhSrgkgcV13oOP8J9C40JIEqCibX-0-541b4f4d26a48ff0a53ecac1d8adfb6a)
通过add方法新增集合中的数据。从上述例子中可以看到,就算“add”多次同样的数据,集合中也不会多次出现这些数据,因为集合中存储的数据都是去重后的。
3.4.3 set删除数据
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_37.jpg?sign=1738972590-6kIxyS4zUYdSlIjwyEaMs55pJDyB3Dbu-0-32a09ef95ce3d3b95a2f346eea6c10f3)
remove方法的作用是删除集合中的数据。如果要删除的数据不在集合中,就会报错。
3.4.4 set的常用方法
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_39.jpg?sign=1738972590-vCKr7eMfCS5TM9941LYuUGiNvYBcWOVq-0-83f2cd9f4446869779e566fe0306d789)
set同样可以用“in”关键字判断集合中是否有某个元素,set也可以用len函数获取当前集合的长度。
3.4.5 set运算
想必大家在中学数学课中学习过集合。集合的几个常用运算包括交集、并集和子集等。
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_40.jpg?sign=1738972590-ZJVKZkhbNIJC8GxCS72fvUKdqbVQWepN-0-6d6b73da22e10733fd1abc3cb11e0f42)
“a & b”求a和b的交集。
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_41.jpg?sign=1738972590-HgPVedexcqcCtDMsec5Z4sUCUoaP5I28-0-85c2620deb38ecf78465bcfdc44ecbcc)
“a | b”求a和b的并集。
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_42.jpg?sign=1738972590-eIO1Rq70WXWvRosrdcavrKMdh4adC7VG-0-25255bae2472012ef356d0ad0a22691c)
“a.issubset(b)”判断a是否是b的子集。
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_43.jpg?sign=1738972590-8YIALOP8gmACGCFAxCDjL9ftiH1REO4t-0-db74657115ed2b4322368ddb948c3b37)
“b.issubset(a)”判断b是否是a的子集。
![](https://epubservercos.yuewen.com/3BC464/16264452505768106/epubprivate/OEBPS/Images/txt003_44.jpg?sign=1738972590-ndrQbAl5NS70qqNzSr1vWVE4nVzU4XKV-0-9630f5e497028504f578908beb30c0d9)
“b - a”求b和a的差集。