![Python程序设计应用教程](https://wfqqreader-1252317822.image.myqcloud.com/cover/751/31729751/b_31729751.jpg)
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=1739603952-llnNYzkOOUmwDwJ5PMmAfkifnOD6zqMl-0-b327cb4f364ab931b65a30f70e8c2e5e)
列表索引从0开始。列表可以进行截取(切片)、组合等。
1.访问列表中的值
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00034002.jpg?sign=1739603952-jJBfeu98kchoM9payO8dF0VGfPX2M8Yx-0-2a4f6eb6db7e3ab53bf637b7a8028d46)
列表
使用下标索引来访问列表中的值,同样也可以使用方括号切片的形式截取。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00034003.jpg?sign=1739603952-btushkFIkb7eqZXff0Yk5dPItCpy80aO-0-86a44da7dfd904881b282cf4bcde8f7c)
程序运行结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00034004.jpg?sign=1739603952-H9Jc6eQ29HD3lUPymNLXMPlbu5vnVlC9-0-7de325e4eb4cb473739c198d087f133d)
2.更新列表
可以对列表的数据项进行修改或更新。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00034005.jpg?sign=1739603952-G3Fk8tuqAU2ZPXp8y68aij2WxCt0ndqU-0-54f7d8005d17b0f2ed6fc6056eae0e39)
程序运行结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00035001.jpg?sign=1739603952-gRwR7xW3cU41BDDFkhOg0B8wTpzTieIX-0-79e27512c614e691aa8f540b17ef56b2)
3.删除列表元素
方法一:使用del语句删除列表中的元素。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00035002.jpg?sign=1739603952-ARn6QOXYDRyr27BJtkBtgJb3Q0Wo4EQK-0-05d6455650d90ff3813edc0e8c3ed36f)
程序运行结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00035003.jpg?sign=1739603952-4jm35QYM0UXrBZYGXaOnmHBiiAhcDx2j-0-590b2f4309e0592fe6fb12a928c3521d)
方法二:使用remove()方法删除列表中的元素。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00035004.jpg?sign=1739603952-d4ZNzUomTSyuKDU6qBlwZBs6knpoDzwb-0-71b68a44c46164db8f5e21d5051d14c3)
程序运行结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00035005.jpg?sign=1739603952-lQaorObZRrONhK6EHvCegPgGu9u4Ws8d-0-75e443c7a3241f7d6072870e33f795e6)
方法三:使用pop()方法删除列表中指定位置的元素,无参数时删除最后一个元素。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00035006.jpg?sign=1739603952-ft4dOOxi05sujPvStEiQljZwotRxKJjt-0-22197dd1d4d4a70a84f5de0a85156b0d)
程序运行结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00035007.jpg?sign=1739603952-2Mrwl8JUCBaHta0mDUgKy9Ufe27bM8Y0-0-a999bf598ef39ae4326cbff809556456)
4.添加列表元素
可以使用append()方法在列表末尾添加元素。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00035008.jpg?sign=1739603952-QkGsmJpgwmdGH5jPmvrDCN6kSy6qIZBW-0-176a8b6d72481add9a4af9ad66716b2f)
程序运行结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00035009.jpg?sign=1739603952-Mt2uVxzmXuwYv2hhMHuYKjUPRf0S1q8a-0-85cda1a63cecf73caf84dbf7af9bc4cc)
5.定义多维列表
可以将多维列表视为列表的嵌套,即多维列表的元素值也是一个列表,只是维度比父列表小1。二维列表(即其他语言的二维数组)的元素值是一维列表,三维列表的元素值是二维列表。例如:定义1个二维列表。
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00036001.jpg?sign=1739603952-s2tHfyPtYCbzOZuk3ge8uxIqVEntubVh-0-e9fbc97f7a8d75abb184b983f9688709)
二维列表比一维列表多一个索引,可按如下方法获取元素:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00036002.jpg?sign=1739603952-wYRaXQSozxkyvPM7PRvDrAiCu3ljAOq9-0-69cc40e4ddce67921f834b5a83f47f1e)
例如:定义3行6列的二维列表,打印出元素值。
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00036003.jpg?sign=1739603952-EDknsExNTPFw8JJLJupWROLQxtLI73WZ-0-90f14e1ff4edb33641f5468b28e83027)
程序运行结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00036004.jpg?sign=1739603952-dE8mujHZ1qHaeBfqFwOdKz2Q3lkAT9jK-0-1420bc2a9495d7474d577045db48b518)
列表生成式是Python内置的一种极其强大的生成列表的表达式,详见3.2.5节。本例中第3行生成的列表如下:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00036005.jpg?sign=1739603952-xXNA4dy8ENb3LJCBsowSgMRbfwrkLYnk-0-13f254ed33fca264884f7842f255048d)
6.列表的操作符
列表对“+”和“*”的操作符与字符串相似。“+”号用于组合列表,“*”号用于重复列表。Python列表的操作符应用示例如表2-12所示。
表2-12 Python列表的操作符应用示例
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00036006.jpg?sign=1739603952-5GvltHNraYK3amQA1clFxbQkeIlEDnPn-0-0f8d8b75b0026a1dc680a41c5088bf94)
Python列表内置函数如表2-13所示。假设列表名为list。
表2-13 Python列表的内置函数
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00036007.jpg?sign=1739603952-b6prGhpqckRbLgoakFxmBoncvQqNVeln-0-e6e7381deba8d6c72a0466caae014856)
续表
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00037001.jpg?sign=1739603952-F5QvPma1Gv73DScHUp7MHdan5fucdbGu-0-206f8987e0eb68a5cfa6176e9274e78f)
2.4.2 元组
Python的元组(Tuple)与列表类似,不同之处在于元组的元素不能修改。元组使用小括号(),列表使用方括号[]。元组中的元素类型也可以不相同。
1.创建元组
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00037002.jpg?sign=1739603952-OlWOQLQzygKcbRi1LcBkv3vMQXJBXE44-0-3a60165c6e7273fa81fe47eac8880f91)
元组
创建元组很简单,只需要在括号中添加元素,并使用逗号隔开即可。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00037003.jpg?sign=1739603952-oglnaVDZMpA5MIUdbQJNU0PdiuYxmhRg-0-a857635e0714fd983371be04cca6b3c1)
如果创建空元组,只需写个空括号即可。
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00037004.jpg?sign=1739603952-CiSAklODT8uloxzSBZrFtnY0sYi0VtKp-0-342747b479a3793bded0a85ee5fe1b9d)
元组中只包含一个元素时,需要在第一个元素后面添加逗号。
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00037005.jpg?sign=1739603952-CBmK1b2sX4pYM7a1uRI3rOcEb9wKBGU2-0-ef8364f661a040a45a3880c2ee8c6b31)
元组与字符串类似,下标索引从0开始,可以进行截取、组合等。
2.访问元组
可以使用下标索引来访问元组中的值。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00037006.jpg?sign=1739603952-D9mzrHWTEsw0hoVTrP9so6JAzuUEKAMY-0-e12a862d04a595c7b4698319823ac6cb)
程序运行结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00037007.jpg?sign=1739603952-oPKNqOeaqUVixDL6ESJhN7rGU121gA3U-0-024792e0281055602b753b941a28f98e)
3.元组连接
元组中的元素值是不允许修改的,但可以对元组进行连接组合。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00037008.jpg?sign=1739603952-F57wSXpDfc6fm62TvyNtE7SctoMBPdur-0-1ac5bd74715565255793ee91a4c5f3b7)
程序运行结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00038002.jpg?sign=1739603952-hiT1EvvHoaqjPiWF8x1jOHkMiI4mnpjy-0-440af109ffce53f195f4e149db8d4f61)
4.删除元组
元组中的元素值是不允许删除的,但可以使用del语句删除整个元组。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00038003.jpg?sign=1739603952-x3CCeYP60RUeXDEgkwDyiYriIddA13qY-0-16c12a955605d48d0e6b81f42ff6c3e5)
以上实例元组被删除后,输出变量会有异常信息。输出结果如下:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00038004.jpg?sign=1739603952-Bt8gDU52VZYe9Rj0wYhfvrZphF4Y5dTO-0-22886ffba15ef529911daf678fec9be9)
5.元组运算符
与字符串一样,元组之间可以使用“+”号和“*”号进行运算。这就意味着它们可以组合和复制,运算后会生成一个新的元组。Python元组的操作符应用示例如表2-14所示。
表2-14 Python元组的操作符应用示例
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00038005.jpg?sign=1739603952-i3Pc7KJL3LktZyWQnsK9CuKshwjVDxII-0-b688603234800c08c305850955def4f8)
Python元组包含了如表2-15所示的内置函数。
表2-15 Python元组的内置函数
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00038006.jpg?sign=1739603952-lSvFlJ1zShrIJi1nTOgbQDaELwQB8mud-0-c8a13019765de12939e6c3ad3b5b2034)
例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00038007.jpg?sign=1739603952-cySjX0ZS1hLRPSOzhwkx9G6A9qA8HPem-0-5c834dfb817dca042831b1cdc6accfc4)
注意:可以使用元组来一次性对多个变量赋值。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00038008.jpg?sign=1739603952-gwGvh6Lpv8tOkfmpSTZdcynJLNqEfmkr-0-a844f6aa65b3340a1c0a2162aefc2eeb)
如果想实现x、y的交换,可以编写程序如下:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00038009.jpg?sign=1739603952-ArDfxCByv4FXxZjNxN3QPvsmfMEEUw7V-0-91f2df7628dce5f1dd9d1b9caf991703)
6.元组与列表转换
因为元组数不变,所以可以将元组转换为列表,从而可以改变数据。实际上列表、元组和字符串之间可以互相转换,需要使用3个函数:str()、tuple()和list()。
可以使用下面的方法将元组转换为列表:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00039002.jpg?sign=1739603952-42iRStNwcJJ23eWdvbWWEHr2ARiVthxH-0-f608cb0b597a2ba643538979687a7c74)
例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00039003.jpg?sign=1739603952-AaZ70DfAodd5piYcoFETtG2sK5dSre9m-0-17f2b5d838b63df58d0d3391391d5bec)
可以使用下面的方法将列表转换为元组:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00039004.jpg?sign=1739603952-w1vymq7XiYH0ZBcE5jts3BdFv5CKzUe3-0-1944c25a903b9d533d3938930bfa3a96)
例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00039005.jpg?sign=1739603952-Ra4SQA2ypGCQuz7IlS676zVBCm9Jaft5-0-afe5680267b18e494b2250d49fb6790f)
将列表转换成字符串如下:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00039006.jpg?sign=1739603952-ptuOyV98sr7IYDODISr8CxMTrVnhYYD9-0-2998c043743c172abe7331cadacc679f)
2.4.3 字典
Python字典(Dict)是一种可变容器模型,且可存储任意类型的对象,如字符串、数字、元组等其他容器模型。字典也被称作关联数组或哈希表。
1.创建字典
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00039007.jpg?sign=1739603952-Kgk0NW1vmx47AdQJo4ogbDrQEATbRU6Z-0-ecbe81ae2e4b9b71cdbc33cf74291e6d)
字典和集合
字典由键和对应值(key=>value)成对组成。字典的每个键/值对里面键和值用冒号分隔,键/值对之间用逗号分隔,整个字典包括在花括号中。基本语法如下:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00039008.jpg?sign=1739603952-SBIBXfquZ9vSKYbNptXs0ZLSgWbX1nul-0-cbf7688c5f4b9fb2a30848c0285250d1)
注意:键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串、数字或元组。
一个简单的字典实例:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00039009.jpg?sign=1739603952-SLfiE6YrHsr7PQLObbHOJZNUTgeKSMny-0-e3d64fd469ceebac389b8c258960b639)
也可如此创建字典:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00039010.jpg?sign=1739603952-5xzhiuSYWU4Bph8IQgljKjh1lIjk5qCj-0-e2646987850be96d5888af509e81ece7)
字典有如下特性:
(1)字典值可以是任何Python对象,如字符串、数字、元组等。
(2)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会覆盖前面的值。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00040001.jpg?sign=1739603952-EjjKeWle0eQHs9x4yynFil3zZwMt94fG-0-47bf41e74d78f1389b8f506306381127)
实例输出结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00040002.jpg?sign=1739603952-PHFOm7XRAOWMCbXt1YDYWjbHzJi9g710-0-7adfa7133e02461dcf3f17ab13dd2f8c)
(3)键必须不可变,所以可以用数字、字符串或元组充当。用列表就不行,例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00040003.jpg?sign=1739603952-I74LV7spko3NBb1z1GTIQgTG06eYQimm-0-d75f5d28ffff5a766af235def9f05d10)
程序运行后输出错误结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00040004.jpg?sign=1739603952-Up2WIwxptoQO6kWMWJKLfkPiRsO4R5SV-0-21e94dc957cee74b1d14bcbe8cf39595)
2.访问字典里的值
访问字典里的值时把相应的键放入方括号里。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00040005.jpg?sign=1739603952-JwvIv4JHSBAMyJegmGB99npO9A6YhIyc-0-557a0ff5c230bcc85a5d63f6ada6a172)
程序运行结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00040006.jpg?sign=1739603952-Se3tZHqsNA7JBSbELnvW7W3MiCUcZ6zR-0-5981fb8b8643ec472f4c75595a47f682)
如果用字典里没有的键访问数据,会输出错误信息:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00040007.jpg?sign=1739603952-5jAvjZKqd33QxdKhXhs1SDLbJNntAJUr-0-8add0bfe468fd556f5044fc36ec8a80b)
由于没有sex键,以上实例输出错误结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00040008.jpg?sign=1739603952-t2riJ4WXWvubpJ5IriogSwH1IcbmeWRd-0-aa15a5508b0a2ac5f4c52f0a9b49ef9d)
3.修改字典
向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00040009.jpg?sign=1739603952-rT4BBxHzxuC4sEbW3PqDwYBBntGTNXvQ-0-3a6a6a7970885badca3f003b72d4bd1b)
程序运行结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00040010.jpg?sign=1739603952-larxK84lqG9iRuEoP1ya8BYurHff5iCP-0-806b0fd7bb4ebd0244864bcbe9d4fc51)
4.删除字典元素
del()方法允许使用键从字典中删除元素(条目);clear()方法清空字典所有元素。
显示删除一个字典用del命令,例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00041001.jpg?sign=1739603952-wiqKCJUrPU6iFEGeXZNsCjqRgxGY8Jpi-0-e0c983a901a13c8e461c2e671020d3e3)
5.in运算
字典里的in运算用于判断某键是否在字典里,对于value值不适用。功能与has_key(key)方法相似。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00041002.jpg?sign=1739603952-wFz9KkHhNSboZDpOIlWmgXpM90HgrGvx-0-56a7245368ccca406ba2afee005110a0)
程序运行结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00041003.jpg?sign=1739603952-V0CAqkCt8H3bw8e3eqPtcT7y22wSgO3v-0-93c220b52a06e781df20a30bbbd06c39)
6.获取字典中的所有值
dict.values()以列表返回字典中的所有值。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00041004.jpg?sign=1739603952-OSQfmZ5CE3A8qEveVQUcgXzegyZSktdZ-0-4f2445023b52f461501d7d124a115553)
程序运行结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00041005.jpg?sign=1739603952-xHX9FmzKvFAVC6n9UprClNtVsGwzXyjq-0-07196a14e6725f45f7e0b918e12eb2e7)
7.items()方法
items()方法把字典中每对key和value组成一个元组,并把这些元组放在列表中返回。
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00041006.jpg?sign=1739603952-5ieCnbihNk8w2M71JIJRL3gmJZXrudu6-0-cce6139391a6c1d32260c4e01723d6a1)
程序运行结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00041007.jpg?sign=1739603952-yjiW4fi7O31pm77kUwJqAbGTLQ8XQehM-0-5e4155eed1272da31a7485b6759b5802)
注意:字典打印出来的顺序与创建之初的顺序不同,这不是错误。字典中各个元素并没有顺序之分(因为不需要通过位置查找元素),因此,存储元素时进行了优化,使字典的存储和查询效率最高。这也是字典和列表的另一个区别:列表保持元素的相对关系,即序列关系;而字典是完全无序的,也称为非序列。如果想保持一个集合中元素的顺序,需要使用列表,而不是字典。
字典内置函数和方法如表2-16所示。假设字典名为dict1。
表2-16 字典内置函数和方法
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00041008.jpg?sign=1739603952-koK8cFJi4z27rGnVGCupWm8pqsHLLVD8-0-84c2e065fc5857863c05d8be3744b473)
续表
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00042001.jpg?sign=1739603952-jP5Yv5kVJTdE1Ylo5otuttvWCSdUmFyR-0-4ea136630cbc113bcf2e8ce69c63006c)
2.4.4 集合
集合(Set)是一个无序不重复元素的序列。集合的基本功能是进行成员关系测试和删除重复元素。
1.创建集合
可以使用大括号({})或者set()函数创建集合。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00042002.jpg?sign=1739603952-X2MI69AzdUCvIusoDArOarmPfTQX5Out-0-8af75898a47f11f105ee460fc6cd148d)
程序运行结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00042003.jpg?sign=1739603952-EmuGhoZtd6Y5xe1J61JgLFEQiyRcT9B8-0-8eb5df5ab016060e6c6fc00e536adc42)
注意:创建一个空集合必须用set()而不是{},因为{}是用来创建一个空字典。
2.成员测试
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00042004.jpg?sign=1739603952-9EluwNLxzSoYx9oqf5qTM04ElQvSjWx6-0-aeea98c403e8aeda50bbab4bf2846523)
程序运行结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00042005.jpg?sign=1739603952-2WUM840tfDYK0cGhwgTwzRqBja2JWEKx-0-d3510dc6bbaad409e900f6af0bf947e6)
3.集合运算
可以使用“-”“|”“&”运算符进行集合的差集、并集、交集运算。
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00042006.jpg?sign=1739603952-M9R3EgGqHAz3eZzlTV01N7zmkCz0tVbF-0-8d3a029c0a18a7bdfcce63c7f49a2ae8)
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00043001.jpg?sign=1739603952-zj7qQWxvp4GmK7wWDruMLlEbFld8WyVR-0-9bcec059c9087a3805b4af95f799fc33)
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00043002.jpg?sign=1739603952-kj6VAUKcpFCm4tdgdt7sHTDOjaNagKx6-0-50550164876399627f16af5c2ef4c01d)