![数据结构与算法(Python版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/974/41864974/b_41864974.jpg)
上QQ阅读APP看书,第一时间看更新
3.10 集合
3.10.1 集合的概念
集合(Set)是一个无序、不重复元素集,基本功能包括关系测试和消除重复元素。集合有如下一些方法,如表3.14所示。
表3.14 集合的方法
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_55_01.jpg?sign=1738949659-Cpiza1qLgh5mckt3LVBa7SDyD3fQ8cLa-0-fe907d03952b77d5da6248a28861a1f8)
3.10.2 集合的操作
(1)创建集合
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_55_02.jpg?sign=1738949659-ECpn3AX6JaleSVelNdw45esSTnNKHy92-0-f81a66085c32874d57c2e0e9f643cc0a)
重复的元素在set中被自动过滤,如下所示。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_55_03.jpg?sign=1738949659-qTmFEM1Kx8uHRasev58awbccuIpXZw42-0-bc95e9e745737b98990f380bd72ad661)
(2)访问集合
集合本身无序,无法进行索引和切片操作,只能使用in、not in或者循环遍历来访问或判断集合元素。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_55_04.jpg?sign=1738949659-tbsPcZLgKWlEd7NnzCzx3JQxpEG1Do1V-0-4d78aa18ffb9efbcb4a2c81de236b516)
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_56_01.jpg?sign=1738949659-9IByjTU1B586YMQAqeyDPNaQj7cwdwCu-0-8a96236f54b4c5973b0258a24f35a890)
(3)删除集合
使用del语句删除集合。举例如下。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_56_02.jpg?sign=1738949659-SfRiP5WyDBvhVFgmFuG9pcBIhNM95pRB-0-76db55d87c2cae7b2c2b619c73755e68)
(4)向集合中添加元素
使用add语句添加元素。举例如下。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_56_03.jpg?sign=1738949659-6zuOHSopi58Du2riweD1v6tT1LvUa9zi-0-9eae9ca3962644c5785775dcfb7ddea1)
(5)从集合中删除元素
从集合中删除元素有remove()、pop()、clear()等方法。
1)remove()方法。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_56_04.jpg?sign=1738949659-jjdsFVz8UuGrDRgfmUjAL7dwoO7PbUdk-0-dd9c07df23e329f284538204a8925c04)
2)pop()方法。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_56_05.jpg?sign=1738949659-Jpwos9HRLHteRuL9Fh0OSJ27czpsV6pL-0-a241e5cff75ea3f2f1f8cc8589fa263e)
3)clear()方法。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_56_06.jpg?sign=1738949659-xqwK7bHJFAODeP4bORif97fTlAuFM7UY-0-6c1a17ff6d94d341b4aaaf1e86935bf4)
3.10.3 集合运算
Python提供方法实现交、并、差集合运算。
1)差集:“-”用于求出两个集合的差集。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_57_01.jpg?sign=1738949659-KBoci6xtmbQksPbgG0bjUl0iUXeROmCz-0-a1ef3ae95032793823d46489ab03d0d5)
3)交集:“&”用于求出两个集合的交集。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_57_02.jpg?sign=1738949659-Fy1BttH1ESrpzGbYIPVyDhe3CYWi4L8m-0-11cda88f105eb5e43ba587333f2894af)
4)对称差集:“^”用于求出两个集合中不同时存在的元素。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_57_03.jpg?sign=1738949659-5Bm3YgRbw6BQKFuxYHEoTzMsVPSGtNGb-0-b2be4389adee98841b3cdfb8ceeb1253)
【例3-15】每一个列表中只要有一个元素出现两次,那么该列表即被判定为包含重复元素。编写函数判定列表中是否包含重复元素,如果包含重复元素,返回True,否则返回False。然后使用该函数对n行字符串进行处理。最后分别统计包含重复元素与不包含重复元素的行数。
输入格式如下。
输入n,代表接下来要输入n行字符串。
然后输入n行字符串,字符串之间的元素以空格相分隔。
输出格式如下。
True=包含重复元素的行数,False=不包含重复元素的行数。
输入样例如下。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_57_04.jpg?sign=1738949659-9Yjwe9cVc0AB6Y6XeTCaT7yFSLPQkGkN-0-9c7e1ca1adfd766a8b3a14a7e8ee7e57)
输出样例如下。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_57_05.jpg?sign=1738949659-tELK4fqhAaVVMMQseocAkQxpqs1P526w-0-8066c4a28c1923f2e3642743157a5aac)
【代码】
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_58_01.jpg?sign=1738949659-hii1tj3kPdEuk7CLqDddXkmNWrCsOa2V-0-5e72db9023279d358d8d22c3304104b0)