



Python中有列表、元组、字典、集合这4种可以存放多个数据元素的集合,它们在总体功能上都起着存放数据的作用,但却有着各自的特点。
序列是Python中最基本的数据结构。序列中的每个值都有对应的位置值,称为索引,第一个索引是0,第二个索引是1,以此类推。Python有6个序列的内置类型,但最常见的是列表和元组。
列表都可以进行的操作包括索引、切片、加、乘、检查成员。此外,Python已经内置确定序列的长度以及确定最大和最小元素的方法。列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。列表的数据项不需要具有相同的类型。创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:
与字符串的索引一样,列表索引从0开始,第二个索引是1,以此类推。通过索引列表可以进行截取、组合等操作,效果如图1-9所示。
图1-9 列表索引
【例1-8】 访问列表中的值。
list=['red','green','blue','yellow','white','black']
print(list[0])
print(list[1])
print(list[2])
运行程序,输出如下:
red
green
blue
使用下标索引来访问列表中的值,同样也可以使用方括号[]的形式截取字符,如图1-10所示。
图1-10 截取字符
【例1-9】 使用负数索引值截取。
运行程序,输出如下:
list[1]: Runoob
list[1:-2]: ['Runoob','Zhihu']
可以对列表的数据项进行修改或更新,也可以使用append()方法来添加列表项,append()方法用于在列表末尾添加新的对象。其调用格式为:
list.append(obj):obj为添加到列表末尾的对象。该方法无返回值,但是会修改原来的列表。
【例1-10】 更新列表操作实例。
运行程序,输出如下:
【例1-11】 定义两个函数:一个用extend()方法,一个用append()方法。
运行程序,输出如下:
在Python中,可以使用del语句来删除列表的元素。
【例1-12】 使用del语句删除列表元素。
运行程序,输出如下:
原始列表:['Google','Runoob',1997,2020]
删除第三个元素:['Google','Runoob',2020]
此外,还可以使用remove()函数移除列表中某个值的第一个匹配项。函数的语法格式为:
list.remove(obj):obj为列表中要移除的对象。没有返回值但是会移除列表中的某个值的第一个匹配项。
【例1-13】 使用remove()函数删除列表的匹配项。
运行程序,输出如下:
列表现在为:['Google','Jingdong','Baidu']
列表现在为:['Google','Jingdong']
Python中的列表(list)提供了index()和count()方法,它们都可以用来查找元素。
(1)index()方法。
index()方法用来查找某个元素在列表中出现的位置(也就是索引),如果该元素不存在,则会导致ValueError错误,所以在查找之前最好使用count()方法判断一下。
index()的语法格式为:
listname.index(obj,start,end):listname表示列表名称,obj表示要查找的元素,start表示起始位置,end表示结束位置。
· start和end参数用来指定检索范围;
· start和end可以都不写,此时会检索整个列表;
· 如果只写start不写end,表示检索从start到末尾的元素;
· 如果start和end都写,表示检索start和end之间的元素。
index()方法会返回元素所在列表中的索引值。
【例1-14】 应用index()方法查找列表元素。
运行程序,输出如下:
(2)count()方法。
count()方法用来统计某个元素在列表中出现的次数,基本语法格式为:
listname.count(obj):listname代表列表名,obj表示要统计的元素。
如果count()返回0,就表示列表中不存在该元素,所以count()也可以用来判断列表中是否存在某个元素。
【例1-15】 使用count()方法统计某元素在列表中出现的次数。
运行程序,输出如下:
36出现了3次
列表中存在100这个元素
元组(tuple)是Python中另一个重要的序列结构,和列表类似,元组也是由一系列按特定顺序排列的元素组成。
元组和列表(list)的不同之处在于:
· 列表的元素是可以更改的,包括修改元素值,删除和插入元素,所以列表是可变序列;
· 元组一旦被创建,它的元素就不可更改了,所以元组是不可变序列。
元组也可以看作是不可变的列表,通常情况下,元组用于保存无须修改的内容。从形式上看,元组的所有元素都放在一对小括号()中,相邻元素之间用逗号“,”分隔,如下所示:
(element 1,element 2,...,element n)
其中element1~elementn表示元组中的各个元素,个数没有限制,只要是Python支持的数据类型就可以。
从存储内容来看,元组可以存储整数、实数、字符串、列表、元组等任何类型的数据,并且在同一元组中,元素的类型可以不同,例如:
("c.biancheng.net",1,[2,'a'],("abc",3.0))
在这个元组中,有多种类型的数据,包括整型、字符串、列表、元组。
另外,我们都知道,列表的数据类型是list,那么元组的数据类型是什么呢?不妨通过type()函数来查看一下:
>>> type(("c.biancheng.net",1,[2,'a'],("abc",3.0)))
<class'tuple'>
可以看到,元组是tuple类型,这也是很多教程中用tuple指代元组的原因。
Python提供了两种创建元组的方法,分别为使用()创建和使用tuple()函数创建。
1)使用()创建元组
使用()创建元组很简单,只需要在括号中添加元素,并使用逗号隔开即可,如图1-11所示。
例如,下面的元组都是合法的:
图1-11 元组创建图
>>> tup1=('Google','Runoob',1997,2000)
>>> tup2=(1,2,3,4,5)
>>> tup3="a","b","c","d" #不加括号也可以
需要注意的一点是,当创建的元组中只有一个字符串类型的元素时,该元素后面必须要加一个逗号“,”,否则Python解释器会将它视为字符串。
【例1-16】 元组的创建实例。
#最后加上逗号
a=("http://c.biancheng.net/cplus/",)
print(type(a))
print(a)
#最后不加逗号
b=("http://c.bi ancheng.net/socket/")
print(type(b))
print(b)
运行程序,输出如下:
<class'tuple'>
('http://c.biancheng.net/cplus/',)
<class'str'>
http://c.biancheng.net/socket/
2)使用tuple()函数创建元组
除了使用()创建元组外,Python还提供了一个内置的函数tuple(),用来将其他数据类型转换为元组类型。tuple()的语法格式如下:
tuple(data):data表示可以转换为元组的数据,包括字符串、元组、range对象等。
【例1-17】 使用tuple()函数创建元组。
#将字符串转换成元组
tup1= tuple("hello")
print(tup1)
#将列表转换成元组
list1=['Python','Java','MATLAB','JavaScript']
tup2= tuple(list1)
print(tup2)
#将字典转换成元组
dict 1={'a':100,'b':42,'c':9}
tup3= tuple(dict 1)
print(tup3)
#将区间转换成元组
range1=range(1,6)
tup4= tuple(range1)
print(tup4)
#创建空元组
print(tuple())
运行程序,输出如下:
('h','e','l','l','o')
('Python','Java','MATLAB','JavaScript')
('a','b','c')
(1,2,3,4,5)
()
元组与字符串类似,下标索引从0开始,可以进行截取、组合等,如图1-12所示。
图1-12 元组的索引
和列表一样,我们可以使用索引(Index)访问元组中的某个元素(得到的是一个元素的值),也可以使用切片访问元组中的一组元素(得到的是一个新的子元组)。
使用索引访问元组元素的格式为:
tuplename[i]:tuplename表示元组名字,i表示索引值。元组的索引可以是正数,也可以是负数。
使用切片访问元组元素的格式为:
tuplename[start:end:step]:start表示起始索引,end表示结束索引,step表示步长。
【例1-18】 使用两种方式访问元组元素。
url=tuple("https://hao.360.com/?a1004")
#使用索引访问元组中的某个元素
print(url[3]) #使用正数索引
print(url[-4]) #使用负数索引
#使用切片访问元组中的一组元素
print(url[9:18]) #使用正数切片
print(url[9:18:3]) #指定步长
print(url[-6:-1]) #使用负数切片
运行程序,输出如下:
p
1
('a','o','.','3','6','0','.','c','o')
('a','3','.')
('?','a','1','0','0')
在Python中,元组是不可变序列,元组中的元素不能被修改,所以我们只能创建一个新的元组去替代旧的元组。
另外,还可以通过连接多个元组(使用+可以拼接元组)的方式向元组中添加新元素。
【例1-19】 修改元组实例。
#对元组变量进行重新赋值:
tup=(100,0.5,-36,73)
print(tup)
#对元组进行重新赋值
tup=("首页","https://hao.360.com/?a1004")
print(tup)
#连接元组
tup1=(100,0.5,-36,73)
tup2=(3+12j,-54.6,99)
print(tup1+tup2)
print(tup1)
print(tup2)
运行程序,输出如下:
(100,0.5,-36,73)
('首页','https://hao.360.com/?a1004')
(100,0.5,-36,73,(3+12 j),-54.6,99)
(100,0.5,-36,73)
((3+12 j),-54.6,99)
元组中的元素是不允许删除的,但我们可以使用del语句来删除整个元组。
【例1-20】 删除元组操作实例。
tup=('Google','Runoob',1997,2020)
print(tup)
del tup
print("删除后的元组tup:")
print(tup)
以上实例元组被删除后,输出变量会有异常信息,输出如下所示:
('Google','Runoob',1997,2020)
删除后的元组tup:
Tr aceback(mostr ecen t ca l l l as t):
Fi l e"E:\BookEd i t\教材\2022.1.11\Python数据分析\examp l e\1\P1_20.py",l ine 5,in
<modu l e>
print(tup)
NameError:name'tup'is not defined
字典也是Python提供的一种常用的数据结构,它用于存放具有映射关系的数据。比如有份成绩表数据,语文:79,数学:80,英语:92,这组数据看上去像两个列表,但这两个列表的元素之间有一定的关联关系。如果单纯使用两个列表来保存这组数据,则无法记录两组数据之间的关联关系。
为了保存具有映射关系的数据,Python提供了字典,字典相当于保存了两组数据,其中一组数据是关键数据,称为key;另一组数据可通过key来访问,称为value。形象地看,字典中key和value的关联关系如图1-13所示。
图1-13 key和value的关联关系图
由于字典中的key是非常关键的数据,而且程序需要通过key来访问value,因此字典中的key不允许重复。
程序既可使用花括号语法来创建字典,也可使用dict()函数来创建字典。实际上,dict是一种类型,它就是Python中的字典类型。
在使用花括号语法创建字典时,花括号中应包含多个key-value对,key与value之间用英文冒号隔开;多个key-value对之间用英文逗号隔开。
【例1-21】 使用花括号创建字典。
#创建一个简单的dict,该dict的key是字符串,va l ue是整数
scores= {'语文':89,'数学':92,'英语':93}
print(scores)
#空的花括号代表空的dict
emp t y_dict={}
print(emp t y_dict)
#使用元组作为dict的key
dict 2={(20,30):'good',30:'bad'}
print(dict 2)
运行程序,输出如下:
{'语文':89,'数学':92,'英语':93}
{}
{(20,30):'good',30:'bad'}
需要指出的是,元组可以作为dict的key,但列表不能作为元组的key。这是由于dict要求key必须是不可变类型,但列表是可变类型,因此列表不能作为元组的key。
在使用dict()函数创建字典时,可以传入多个列表或元组参数作为key-value对,每个列表或元组将被当成一个key-value对,因此这些列表或元组都只能包含两个元素。
【例1-22】 使用dict()创建字典。
vege t ab l es=[('ce l e r y',1.58),('b r oco l i',1.39),('l e t t uce',2.19)]
#创建包含3组key-va l ue对的字典
dict 3=dict(vege t ab l es)
print(dict 3)
ca r s=[['BMW',8.4],['BENS',8.5],['AUDI',7.6]]
#创建包含3组key-va l ue对的字典
dict 4=dict(ca r s)
print(dict 4)
运行程序,输出如下:
{'ce l e r y':1.58,'b r oco l i':1.39,'l e t t uce':2.19}
{'BMW':8.4,'BENS':8.5,'AUDI':7.6}
如果不为dict()函数传入任何参数,则代表创建一个空的字典。例如:
#创建空的字典
dict 5=dict()
print(dict 5)
{}
还可通过为dict指定关键字参数创建字典,此时字典的key不允许使用表达式。例如:
#使用关键字参数来创建字典
dict 6=dict(spinach=1.39,cabbage=2.59)
print(dict 6)
{'sp inach':1.39,'cabbage':2.59}
在Python中,key是字典的关键数据,所以程序对字典的操作都是基于key的。基本操作如下:
· 通过key访问value。
· 通过key添加key-value对。
· 通过key删除key-value对。
· 通过key修改key-value对。
· 通过key判断指定key-value对是否存在。
· 通过key访问value使用的也是方括号语法,就像前面介绍的列表和元组一样,只是此
时在方括号中放的是key,而不是列表或元组中的索引。
【例1-23】 字典的基本用法实例。
scores= {'数学':92}
#通过key访问va l ue
print(scores['数学'])
如果要为dict添加key-value对,只需为不存在的key赋值即可:
#对不存在的key赋值,就是增加key-va l ue对
scores['数学']=92
scores[92]=5.7
print(scores) #{'语文':88,'数学':92,91:5.7}
如果要删除字典中的key-value对,则可使用del语句,例如:
#使用del语句删除key-va l ue对
del scores['语文']
del scores['数学']
print(scores)
如果对dict中存在的key-value对赋值,新赋的value就会覆盖原有的value,这样即可改变dict中的key-value对。例如:
ca r s={'BMW':8.5,'BENS':8.3,'AUDI':7.9}
#对存在的key-va l ue对赋值,改变key-va l ue对
ca r s['BENS']=4.2
ca r s['AUDI']=4.8
print(ca r s)
{'BMW':8.5,'BENS':4.2,'AUDI':4.8}
如果要判断字典是否包含指定的key,则可以使用in或not in运算符。需要指出的是,对于dict而言,in或not in运算符都是基于key来判断的。例如:
#判断ca r s是否包含名为'AUDI'的key
print('AUDI'in ca r s)
Tr ue
#判断ca r s是否包含名为'PORSCHE'的key
print('PORSCHE'in ca r s)
Fa l se
print('LAMBORGHINI'not in ca r s)
Tr ue
通过上面内容可以看出,字典的key是它的关键。换个角度来看,字典的key就相当于它的索引,只不过这些索引不一定是整数类型,字典的key可以是任意不可变类型。
此外,还有一点需要指出,列表的索引总是从0开始、连续增大的;但字典的索引即使是整数类型,也不需要从0开始,而且不需要连续。因此,列表不允许对不存在的索引赋值:但字典却允许直接对不存在的key赋值,这样就会为字典增加一个key-value对。
字典由dict类代表,因此同样可使用dir(dict)来查看该类包含哪些方法。在交互式解释器中输入dir(dict)命令,将看到如下输出结果:
下面介绍dict的一些方法。
1)clear()方法
clear()方法用于清空字典中所有的key-value对,对一个字典执行clear()方法之后,该字典就会变成一个空字典。
【例1-24】 clear()方法的使用实例。
tinydict={'Name':'Liming','Age':8}
print("字典长度:%d"% l en(t i nydict))
tinydict.c l ea r()
print("字典删除后长度:%d"% l en(tinydict))
运行程序,输出如下:
字典长度:2
字典删除后长度:0
2)get()方法
get()方法其实就是根据key来获取value,它相当于方括号语法的增强版,当使用方括号语法访问并不存在的key时,字典会引发Key Error错误;但如果使用get()方法访问不存在的key,该方法会简单地返回None,不会导致错误。
【例1-25】 使用get()方法获取字典中的值。
tinydict={'Name':'Python','Age':25}
print("Age:",tinydict.ge t('Age'))
#没有设置Sex,也没有设置默认的值,输出None
print("Sex:",tinydict.ge t('Sex'))
#没有设置Salary,输出默认的值0.0
print('Salary:',tinydict.ge t('Salary',0.0))
Age: 25
Sex: None
Salary: 0.0
3)update()方法
update()方法可使用一个字典所包含的key-value对来更新已有的字典。在执行update()方法时,如果被更新的字典中已包含对应的key-value对,那么原value会被覆盖;如果被更新的字典中不包含对应的key-value对,则该key-value对被添加进去。
【例1-26】 使用update()方法更新字典中的值。
tinydict={'Name':'WangShan','Age':8}
tinydict 2={'Sex':'f ema l e'}
tinydict.upda t e(tinydict 2)
print("更新字典tinydict:",tinydict)
运行程序,输出如下:
更新字典tinydict: {'Name':'WangShan','Age':8,'Sex':'f ema l e'}
4)items()方法、keys()方法、values()方法
items()方法、keys()方法、values()方法分别用于获取字典中的所有key-value对、所有key、所有value。这三个方法依次返回dict_items、dict_keys和dict_values对象,Python不希望用户直接操作这几个方法,但可通过list()函数把它们转换成列表。
【例1-27】 items()方法、keys()方法、values()方法的用法实例。
ca r s={'BMW':8.8,'BENS':8.1,'AUDI':7.0}
#获取字典所有的key-va l ue对,返回一个dict_i t ems对象
ims=ca r s.i t ems()
print(type(ims))
#将dict_i t ems转换成列表
print(l is t(ims))
#访问第2个key-va l ue对
print(l is t(ims)[1])
#获取字典所有的key,返回一个dict_keys对象
kys=ca r s.keys()
print(type(kys))
#将dict_keys转换成列表
print(l is t(kys))
#访问第2个key
print(l is t(kys)[1])
#获取字典所有的va l ue,返回一个dict_va l ues对象
va l s=ca r s.va l ues()
#将dict_va l ues转换成列表
print(type(va l s))
#访问第2个va l ue
print(l is t(va l s)[1])
运行程序,输出如下:
<class'dict_i t ems'>
[('BMW',8.8),('BENS',8.1),('AUDI',7.0)]
('BENS',8.1)
<class'dict_keys'>
['BMW','BENS','AUDI']
BENS
<class'dict_va l ues'>
8.1
从例1-27可看出,程序调用字典的items()方法、keys()方法、values()方法之后,都需要调用list()函数将它们转换为列表,这样即可把这三个方法的返回值转换为列表。
5)pop()方法
pop()方法用于获取指定key对应的value,并删除这个key-value对。
【例1-28】 展示pop()方法的使用。
site={'name':'Python教程','a l exa':9999,'url':'www.r unoob.com'}
element=site.pop('name')
print('删除的元素为:',element)
print('字典为:',site)
运行程序,输出如下:
删除的元素为:Python教程
字典为:{'a l exa':9999,'url':'www.r unoob.com'}
6)popitem()方法
popitem()方法用于随机弹出字典中的一个key-value对。
此处的随机其实是假的,正如列表的pop()方法总是弹出列表中的最后一个元素,实际上字典的popitem()方法也是弹出字典中的最后一个key-value对。由于字典存储key-value对的顺序是不可知的,因此开发者感觉字典的popitem()方法是“随机”弹出的,但实际上字典的popitem()方法总是弹出底层存储的最后一个key-value对。
【例1-29】 展示popitem()方法的使用方法。
site={'name':'Python教程','a l exa':9999,'url':'www.r unoob.com'}
resul t=site.pop i t em()
print('返回值= ',resul t)
print('site=',site)
#插入新元素
site['ni ckname']= 'Runoob'
print('site=',site)
#现在('ni ckname','Runoob')是最后插入的元素
resul t=site.pop i t em()
print('返回值=',resul t)
print('site=',site)
运行程序,输出如下:
返回值= ('url','www.r unoob.com')
site= {'name':'Python教程','a l exa':9999}
site= {'name':'Python教程','a l exa':9999,'ni ckname':'Runoob'}
返回值= ('ni ckname','Runoob')
site= {'name':'Python教程','a l exa':9999}
由于实际上popitem()弹出的就是一个元组,因此程序完全可以通过序列解包的方式用两个变量分别接收key和value。
7)setdefault()方法
setdefault()方法也用于根据key来获取对应的value值。但该方法有一个额外的功能,即当程序要获取的key在字典中不存在时,该方法会先为这个不存在的key设置一个默认的value,然后再返回该key对应的value。
总之,setdefault()方法总能返回指定key对应的value;如果该key-value对存在,则直接返回该key对应的value;如果该key-value对不存在,则先为该key设置默认的value,然后再返回该key对应的value。
【例1-30】 展示setdefault()方法的使用方法。
tinydict={'Name':'Python','Age':6}
print("Age键的值为:%s"% tinydict.se t de f au l t('Age',None))
print("Sex键的值为:%s"% tinydict.se t de f au l t('Sex',None))
print("新字典为:",tinydict)
运行程序,输出如下:
Age键的值为:6
Sex键的值为:None
新字典为:{'Name':'Python','Age':6,'Sex':None}
8)fromkeys()方法
fromkeys()方法使用给定的多个key创建字典,这些key对应的value默认都是None;也可以额外传入一个参数作为默认的value。该方法一般不会使用字典对象调用,通常会使用dict类直接调用。
【例1-31】 fromkeys()方法的使用方法。
运行程序,输出如下:
{'a':None,'b':None}
{13:None,17:None}
{13:'good',17:'good'}
Python的集合是一个无序且没有重复元素的序列,集合中的元素必须是可Hash对象。集合不记录元素位置和插入顺序,因此,也不支持索引、切片等其他序列类的操作。
定义集合可以使用{}或者set(),但定义空集合不能使用{},因为{}是创建空字典的方法,定义空集合可以使用set()。
【例1-32】 创建集合的实例演示。
>>> s={1,2,4,5}
>>> print(type(s))
<class'se t'>
>>> s1={}
>>> print(type(s1)) ##空字典定义
<class'dict'>
>>> s1=se t([])
>>> print(type(s1)) ###空集合定义
<class'se t'>
集合之间也可进行数学集合运算(例如并集、交集等),可用相应的操作符或方法来实现。
1)子集
子集,为某个集合中一部分的集合,故亦称部分集合。使用操作符“<”执行子集操作,同样地,也可使用方法issubset()完成。
【例1-33】 子集的演示。
>>> A=se t('abcd')
>>> B=se t('cde f')
>>> C=se t("ab")
>>> C< A #C是A的子集
Tr ue
>>> C< A
Tr ue
>>> C.issubse t(A)
Tr ue
2)并集
一组集合的并集是这些集合的所有元素构成的集合,而不包含其他元素。使用操作符“|”执行并集操作,同样地,也可使用方法union()完成。
【例1-34】 并集实例演示。
>>> A|B
{'f','e','a','d','c','b'}
>>> A.intersection(B)
{'c','d'}
3)交集
两个集合 A 和 B 的交集是含有所有既属于 A 又属于 B 的元素,而没有其他元素的集合。使用“&”操作符执行交集操作,同样地,也可使用方法intersection()完成。
【例1-35】 交集实例演示。
>>> A&B
{'c','d'}
>>> A.intersection(B)
{'c','d'}
4)差集
A 与 B 的差集是所有属于 A 且不属于 B 的元素构成的集合。使用操作符“-”执行差集操作,同样地,也可使用方法difference()完成。
【例1-36】 差集实例演示。
>>> A-B
{'a','b'}
>>> A.difference(B)
{'a','b'}
>>> {'b','a'}
{'a','b'}
5)对称差
两个集合的对称差是只属于其中一个集合,而不属于另一个集合的元素组成的集合。使用“^”操作符执行对称差操作,同样地,也可使用方法symmetric_difference()完成。
【例1-37】 对称差实例演示。
>>> A^B
{'f','e','a','b'}
>>> A.symmetric_difference(B)
{'f','e','a','b'}
在Python中,相关的集合方法也提供相应的函数来实现,下面对各种方法进行介绍。
1)添加元素
在Python中,提供了add()方法向集合内增加元素,如果添加的元素已经存在,则不执行任何操作。
【例1-38】 使用add()方法向集合中添加元素。
t hisse t=se t(("Google","Runoob","Taobao"))
t hisse t.add("Facebook")
print(t hisse t)
{'Google','Facebook','Taobao','Runoob'}
还有一个方法也可以实现添加元素,且参数可以是列表、元组、字典等,其语法格式为:
s.upda t e(x)
x可以有多个,用逗号分开。
【例1-39】 使用update()方法添加集合元素。
>>> thisse t=set(("Google","Runoob","Taobao"))
>>> thisse t.update({1,3})
>>> print(thisset)
{'Google',1,3,'Runoob','Taobao'}
>>> t hisse t.update([1,4],[5,6])
>>> print(thisset)
{'Google',1,3,4,5,6,'Runoob','Taobao'}
2)移除元素
在Python中,提供了remove()方法实现集合移除元素。语法格式为:
s.remove(x):将元素x从集合s中移除,如果元素不存在,则会发生错误。
【例1-40】 使用remove()方法移除集合元素。
>>> s={1,2,3,4,5,6}
>>> s.remove(3)
>>> s
{1,2,4,5,6}
>>> s.remove(8) %不存在会发生错误
Tr aceback(mostrecent call last):
Fi l e"<stdin>",line 1,in<module>
KeyError:8
此外还有一个方法也可以实现移除集合中的元素,且如果元素不存在,不会发生错误。格式如下所示:
s.discard(x)
【例1-41】 使用discard()方法删除集合元素。
>>> s={1,2,3,4,5,6}
>>> s.discard(7) #不存在不会发生错误
>>> s
{1,2,3,4,5,6}
我们也可以设置随机删除集合中的一个元素,语法格式如下:
s.pop()
【例1-42】 使用pop()方法随机删除集合中的元素。
>>> fruits={"apple","banana","cherry"}
>>> x=fruits.pop()
>>> print(x)
cherry