- Python程序设计应用教程
- 夏敏捷 张西广
- 2548字
- 2021-03-25 10:05:13
2.4 序列的数据结构
数据结构是计算机存储、组织数据的方式。序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字,即它的位置或索引,第一个索引是0,第二个索引是1,依此类推。序列都可以进行的操作包括索引、截取(切片)、加、乘、成员检查。此外,Python已经内置确定序列的长度以及确定最大和最小元素的方法。Python内置序列类型最常见的是列表、元组和字符串。另外,Python提供了字典和集合这样的数据结构,它们属于无顺序的数据集合体,不能通过位置索引来访问数据元素。
2.4.1 列表
列表(List)是最常用的Python数据类型,列表的数据项不需要具有相同的类型。列表类似于其他语言的数组,但功能比数组强大得多。
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00034001.jpg?sign=1739503857-T7VI6vjsd1SXEzFof1pPAlujPPS5Cze5-0-7c57860de831ad2726885b6d63f50901)
列表索引从0开始。列表可以进行截取(切片)、组合等。
1.访问列表中的值
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00034002.jpg?sign=1739503857-jvvtdCK24dPDyIUHMuVrASl4pjumRngU-0-3829b996c0d0fe3f359021b58748e923)
列表
使用下标索引来访问列表中的值,同样也可以使用方括号切片的形式截取。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00034003.jpg?sign=1739503857-b1G6H3GUifLlodokln7rWlTp6FDyVZfJ-0-8259c9cc056e8957483099b9844b2b1e)
程序运行结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00034004.jpg?sign=1739503857-FDkwcbcFpxTYJtTge8VESwUbDHBrqfHT-0-701f6cd036786a0d7678edbf7cf44602)
2.更新列表
可以对列表的数据项进行修改或更新。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00034005.jpg?sign=1739503857-nqEnr8w0GgaAWf9nFcgvU3ky9xU1fklu-0-fc730bf5b08751ff980702d27b014fd3)
程序运行结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00035001.jpg?sign=1739503857-AxbZ8iUBSeLAVO0zwe6EeRaUUdofegJG-0-6af54975cd05bbf9c79157e4721959c2)
3.删除列表元素
方法一:使用del语句删除列表中的元素。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00035002.jpg?sign=1739503857-F9p5HYddJmtTHtkfO6uCCYOXvjueEFG3-0-79e0ed0c281609a205fafb2b0ec75227)
程序运行结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00035003.jpg?sign=1739503857-XHXaExcWMaEaQpKK3hx2J19BQ2KphXnZ-0-fa6610b25f445733809487480f331344)
方法二:使用remove()方法删除列表中的元素。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00035004.jpg?sign=1739503857-G5qbGUEPwzKRchDeTGpGm5OGhxvlNm0p-0-2f4773da482a6071c8e1828a61e2032f)
程序运行结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00035005.jpg?sign=1739503857-nc7DXr8GRrkiAqlHgpnNZkdjMuCSkoC0-0-3b6de299433def0993457729e6de50e3)
方法三:使用pop()方法删除列表中指定位置的元素,无参数时删除最后一个元素。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00035006.jpg?sign=1739503857-UIxOHy6LPxjkBsI5YBUDtHYfq3mLZi9E-0-281c9209fd5540673ec18a666bb9248d)
程序运行结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00035007.jpg?sign=1739503857-Nc1D74jMYnR0EIlLPmxmQ5qDrOQsLaXI-0-672d9cf9784d6bfee2c84548626ba4d3)
4.添加列表元素
可以使用append()方法在列表末尾添加元素。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00035008.jpg?sign=1739503857-Xc2LiZPXDCj77JSJzlwp6tOsS3eguPMD-0-42a4c09adaa148ea82f0459c8c0a4707)
程序运行结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00035009.jpg?sign=1739503857-qLZdGQPhmIVFu5xfCbd4dpbCLiLQwFq8-0-85b7c5d5e4ce72f9455d12eab1c1a895)
5.定义多维列表
可以将多维列表视为列表的嵌套,即多维列表的元素值也是一个列表,只是维度比父列表小1。二维列表(即其他语言的二维数组)的元素值是一维列表,三维列表的元素值是二维列表。例如:定义1个二维列表。
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00036001.jpg?sign=1739503857-LbUX1fUR3kgMycb4LQ8IHX25X0t41vWe-0-c1e736e1610cee206d08fe470ef903d7)
二维列表比一维列表多一个索引,可按如下方法获取元素:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00036002.jpg?sign=1739503857-sfVRKnjgEM8MCqcWj7d7Lemi68kVFqhH-0-df3ff05dacffd78db0fe208766fea603)
例如:定义3行6列的二维列表,打印出元素值。
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00036003.jpg?sign=1739503857-J7ryqalcRicvOlyxmrTh8rqKqilanW3t-0-4a797730e85b2f24aff3c690090f58ce)
程序运行结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00036004.jpg?sign=1739503857-OzimK8hKeYUoDdZ8SYp2HABGG1vhGhPQ-0-b9c791ebf910d86881897233d4685014)
列表生成式是Python内置的一种极其强大的生成列表的表达式,详见3.2.5节。本例中第3行生成的列表如下:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00036005.jpg?sign=1739503857-zMLAylJUTfgqwLyJmpSWWQpJBgkzpFzk-0-adcb94bf675c5af743154e36540b99c4)
6.列表的操作符
列表对“+”和“*”的操作符与字符串相似。“+”号用于组合列表,“*”号用于重复列表。Python列表的操作符应用示例如表2-12所示。
表2-12 Python列表的操作符应用示例
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00036006.jpg?sign=1739503857-BJN0NiwZLDpYEKT6GGBbiHG93mgtNvCJ-0-f52400f364e9ccaeda51be86685d0149)
Python列表内置函数如表2-13所示。假设列表名为list。
表2-13 Python列表的内置函数
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00036007.jpg?sign=1739503857-Mwd8IxX3Aew71WQIPvbnNJhh3uafOinf-0-970b6b3a1685cbc58345c58ddd0a9237)
续表
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00037001.jpg?sign=1739503857-mWZ5cqBAz1hM0hc3QyO6vgqNWrZprB4V-0-c8166e0920a51f28c8ec2dab94953b57)
2.4.2 元组
Python的元组(Tuple)与列表类似,不同之处在于元组的元素不能修改。元组使用小括号(),列表使用方括号[]。元组中的元素类型也可以不相同。
1.创建元组
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00037002.jpg?sign=1739503857-3OgVnAUEqPCGmQAhQJCSOjZYMnlQMonk-0-09577375db82c1bfd6df1ef806b2ed6d)
元组
创建元组很简单,只需要在括号中添加元素,并使用逗号隔开即可。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00037003.jpg?sign=1739503857-iAZDduRVdgcEg4Ze5UuaF5h6IA60obvp-0-db5b64f6a954fc50108b002edd21d9ab)
如果创建空元组,只需写个空括号即可。
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00037004.jpg?sign=1739503857-h8hpraymBObeD7EES90WBLTO7nv39dMz-0-4d2f43c3c2f1b6bcffc6ee4f31570aa9)
元组中只包含一个元素时,需要在第一个元素后面添加逗号。
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00037005.jpg?sign=1739503857-LGZ7q7Wy4iey2tNljHfg05gJgeTagGqu-0-61c8841a54dd3d704914196350131da6)
元组与字符串类似,下标索引从0开始,可以进行截取、组合等。
2.访问元组
可以使用下标索引来访问元组中的值。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00037006.jpg?sign=1739503857-5bpCueKWyXOxMcsmQuThtn3n42c4D6HK-0-a2e926feaba8dafe9a744b53ff7f7342)
程序运行结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00037007.jpg?sign=1739503857-xmOnuEUmAPTsal1YFAMxgKIUp8jvRREH-0-2f39675df397c089693451da4fb3fe6d)
3.元组连接
元组中的元素值是不允许修改的,但可以对元组进行连接组合。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00037008.jpg?sign=1739503857-G2tkisSlTloJMAYF4uUvvT4vpJDQSWu5-0-e23a7bbb75589cb6650fa1af8ad1c999)
程序运行结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00038002.jpg?sign=1739503857-zTQFFH9JBLEVh659n3F5WW9Fq9KIuvVD-0-a6f3b329d8c5819d3c885c2e5c3b73e0)
4.删除元组
元组中的元素值是不允许删除的,但可以使用del语句删除整个元组。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00038003.jpg?sign=1739503857-pA9vpWFCE0zJEwrr57gGS9QwkIZZ6nTT-0-5b5e88383e54bbfcff6e025126666118)
以上实例元组被删除后,输出变量会有异常信息。输出结果如下:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00038004.jpg?sign=1739503857-ptDm4snxFc6dvc2z7vGbJRA4irmBfMTO-0-2840d9c1ffd8e49cf9c0607f66fd3cbc)
5.元组运算符
与字符串一样,元组之间可以使用“+”号和“*”号进行运算。这就意味着它们可以组合和复制,运算后会生成一个新的元组。Python元组的操作符应用示例如表2-14所示。
表2-14 Python元组的操作符应用示例
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00038005.jpg?sign=1739503857-ofPqoiwFy9Pd5KNPlk2ilcGoL9fXoET8-0-fccaa02d3c3bc7ab4db7048411ba85c1)
Python元组包含了如表2-15所示的内置函数。
表2-15 Python元组的内置函数
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00038006.jpg?sign=1739503857-2fMXDaYouTDUJwYoqqleLWMONrQxoLXE-0-b7b38b6d44b89c69fcf10612f0224dff)
例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00038007.jpg?sign=1739503857-AZL2tV7FKGvIkdraWR1C2nWLOxAdXHvy-0-edb80a0efb75522f8fa2531d7a2285df)
注意:可以使用元组来一次性对多个变量赋值。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00038008.jpg?sign=1739503857-a2o2RIaDFHxdW6nqvwsJTg3I30Suqy1M-0-cdf86b9682f053019a67139530306c60)
如果想实现x、y的交换,可以编写程序如下:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00038009.jpg?sign=1739503857-uEtSH52vJtJjB1rzBDFhr3lHFNaHBTsh-0-62464ee4d81eb848299cb14cc93f59b9)
6.元组与列表转换
因为元组数不变,所以可以将元组转换为列表,从而可以改变数据。实际上列表、元组和字符串之间可以互相转换,需要使用3个函数:str()、tuple()和list()。
可以使用下面的方法将元组转换为列表:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00039002.jpg?sign=1739503857-2UXwbja9eaoBcSZXBQAAML19OAoutqmw-0-8ea9eea9011db1df3704c17931f872df)
例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00039003.jpg?sign=1739503857-qw2OcLCZ2Of3YOmSUBObYgYlGP0B7FTn-0-7995e8cc5a8aec7f91ad3847f0bc92fa)
可以使用下面的方法将列表转换为元组:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00039004.jpg?sign=1739503857-puEuZvt40pKbLuXg6mf9Wj7W4UYZTkCA-0-141fc1a1c6330fffb2c6420083858b40)
例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00039005.jpg?sign=1739503857-YHjLkrrXOrN6OumOYEuKmiGfTVkyYDBX-0-85193a4477420b42569eb750c945313b)
将列表转换成字符串如下:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00039006.jpg?sign=1739503857-CU9APgfQwKAudJAEi1j4XA3yUq4vm0jZ-0-848c3f1fb4e5bc73431512f2db591285)
2.4.3 字典
Python字典(Dict)是一种可变容器模型,且可存储任意类型的对象,如字符串、数字、元组等其他容器模型。字典也被称作关联数组或哈希表。
1.创建字典
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00039007.jpg?sign=1739503857-bKEYYiyEM1frCm4XeWEVAPamgY2iEhfJ-0-9a1d4ae50cbc713cbbc55ebeea777121)
字典和集合
字典由键和对应值(key=>value)成对组成。字典的每个键/值对里面键和值用冒号分隔,键/值对之间用逗号分隔,整个字典包括在花括号中。基本语法如下:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00039008.jpg?sign=1739503857-6XTBXGK0biEcqlwsYc2mlwOZoZkoxCfH-0-69b40d6b95033c1f9f6b2597dcbb3737)
注意:键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串、数字或元组。
一个简单的字典实例:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00039009.jpg?sign=1739503857-55FFzuxx2UqiSsT1SASVF2GtGUBmYaBz-0-8c459ae984746aacd45e6e94d9c4150d)
也可如此创建字典:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00039010.jpg?sign=1739503857-mbUzdO9q3g2to8TLpcHWRcyoHXEq3JWn-0-bdc82397825409472dced6c7ef3a04ae)
字典有如下特性:
(1)字典值可以是任何Python对象,如字符串、数字、元组等。
(2)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会覆盖前面的值。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00040001.jpg?sign=1739503857-2F4Vuh2xiqknqh0TYFcybnE3rFR9MkU5-0-f09f156393b405e606ffba6487a6c4b4)
实例输出结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00040002.jpg?sign=1739503857-B9DmCwz5FlSEFvlmbtv93UuJTWLrt3v1-0-af2809222dcaf266d22324d2feb83e71)
(3)键必须不可变,所以可以用数字、字符串或元组充当。用列表就不行,例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00040003.jpg?sign=1739503857-2LoszlsLk1Jbho81nVlosmE0PNgWYZ6T-0-3ecd56deb8bb56852a7e40a5e7fced53)
程序运行后输出错误结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00040004.jpg?sign=1739503857-ckyzn7r0WGgrLUwQXOb4RLDMCQqXFYbk-0-40451db6822efabec6e51cdc9353b6f7)
2.访问字典里的值
访问字典里的值时把相应的键放入方括号里。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00040005.jpg?sign=1739503857-4zXXqG3e8Mm9zombJ1VNAz31ddYcghxd-0-491375a3a929af3d8de38251a84eb208)
程序运行结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00040006.jpg?sign=1739503857-JiUajO69iiwMN6wPUBr4trKPNP514Obj-0-c2f2bcb5cea832224566d1f49271a544)
如果用字典里没有的键访问数据,会输出错误信息:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00040007.jpg?sign=1739503857-5oaPnndjFAbQN00eTa6O5NFd1rR8jDBN-0-a0e341194cb64b0c4b0be5d062a80e54)
由于没有sex键,以上实例输出错误结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00040008.jpg?sign=1739503857-eMuJxtUy1Vz8zUXshKNsqXdpb9EEQong-0-2cf12aba3545f3384221b2f7ea314373)
3.修改字典
向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00040009.jpg?sign=1739503857-hb6x1Njlhrv11mKbGWwrMWQV4uH3fZl7-0-177c180c5ea2939082ca7f4f717966f5)
程序运行结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00040010.jpg?sign=1739503857-TmEPEpNKCs1vip2fydHRFYAxABk7dBUs-0-9c4d0442f2e6e2d8c6b18ecdbb13511a)
4.删除字典元素
del()方法允许使用键从字典中删除元素(条目);clear()方法清空字典所有元素。
显示删除一个字典用del命令,例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00041001.jpg?sign=1739503857-4SBGuddj32IZkFaKk7D4Adpq7xDBj1ZA-0-065b762e62c2dae25276a6760a1f9c66)
5.in运算
字典里的in运算用于判断某键是否在字典里,对于value值不适用。功能与has_key(key)方法相似。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00041002.jpg?sign=1739503857-g5o6T1G8lwa6kz4wXxYu1dzO1d3uPYEM-0-d1f32a39f10e4db0fb75880aaf856ef0)
程序运行结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00041003.jpg?sign=1739503857-JKOnO7DwnT6pUWvcu5IZc3h0MTRuZuIM-0-8cc1407441062da0b5c9dc3f268ce6eb)
6.获取字典中的所有值
dict.values()以列表返回字典中的所有值。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00041004.jpg?sign=1739503857-Tdesnfro7LvJUqCQl9KbtxYVT99ePyFo-0-3158bd565dd7029a627dedacb17efd6b)
程序运行结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00041005.jpg?sign=1739503857-L1PZrERiuNqJIPp0mVBesMNMkSMzLRnn-0-b276ca7a06be4790469786312718ccbe)
7.items()方法
items()方法把字典中每对key和value组成一个元组,并把这些元组放在列表中返回。
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00041006.jpg?sign=1739503857-DuLHuIqzPM6172DxHHuTGf5orlYUyhWy-0-9ee13b8570a67e470e86c79724ddcd31)
程序运行结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00041007.jpg?sign=1739503857-9IcAleVIZVDE4tZZBqGnVnOlPlGRFCeH-0-8b72a5fe561d50a3c84bde1aecd8f7cf)
注意:字典打印出来的顺序与创建之初的顺序不同,这不是错误。字典中各个元素并没有顺序之分(因为不需要通过位置查找元素),因此,存储元素时进行了优化,使字典的存储和查询效率最高。这也是字典和列表的另一个区别:列表保持元素的相对关系,即序列关系;而字典是完全无序的,也称为非序列。如果想保持一个集合中元素的顺序,需要使用列表,而不是字典。
字典内置函数和方法如表2-16所示。假设字典名为dict1。
表2-16 字典内置函数和方法
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00041008.jpg?sign=1739503857-T3bHx9GCMdTQC08XnhyMBBOfnaRCicJ2-0-1d95dadaae4d1b44fb7bee49beb5009a)
续表
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00042001.jpg?sign=1739503857-rGS8eZIwSiJ4SiHGsD0icphHmE8odl1Y-0-61326bdce4e6610273149c525b543758)
2.4.4 集合
集合(Set)是一个无序不重复元素的序列。集合的基本功能是进行成员关系测试和删除重复元素。
1.创建集合
可以使用大括号({})或者set()函数创建集合。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00042002.jpg?sign=1739503857-9j4LRNg6bBX7vS2K1RHdQVUzRG01PrhC-0-480c01ddbc0bfa2655b962a1ace6dcee)
程序运行结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00042003.jpg?sign=1739503857-26fydWvxhiNJVi8c1x1IxsJNPdGVEHcG-0-36ee2d4380ed222178722e7a74ef94d6)
注意:创建一个空集合必须用set()而不是{},因为{}是用来创建一个空字典。
2.成员测试
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00042004.jpg?sign=1739503857-D2umkUWeFSOjZRP0puvj8Jx8hgW5QZ0a-0-c7f72eaf66ee2bc75d39ed80f41052db)
程序运行结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00042005.jpg?sign=1739503857-f6ggWYEG9ZOU1cBEnlHPJ7pAAp5FW9Z4-0-d1bf2b93b6f54950b1da88eecc817764)
3.集合运算
可以使用“-”“|”“&”运算符进行集合的差集、并集、交集运算。
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00042006.jpg?sign=1739503857-ucNW3kue48Me4oipC8WNiqGtsl2Mio5D-0-7511e09fd25f51f6f2042f2e1f114fed)
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00043001.jpg?sign=1739503857-7twzzDhvkWvR5QINj7BZV70l6hkrSKi5-0-0152e1e59d3ae6eac497066ab5facd25)
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00043002.jpg?sign=1739503857-bSlHHxlPNcDCDliREOjn4kkOHrAntDyr-0-335ececdc9b0a9dea3ba79e5034d37b6)