(5)--第3章 列表、元组、字典、集合与字符串.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《(5)--第3章 列表、元组、字典、集合与字符串.ppt》由会员分享,可在线阅读,更多相关《(5)--第3章 列表、元组、字典、集合与字符串.ppt(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第3章 列表、元组、字典、集合与字符串1本章学习目标熟练掌握列表对象及其常用方法熟练掌握列表推导式语法和应用熟练掌握切片操作熟练掌握序列解包的语法和应用熟练掌握生成器表达式的语法和应用理解元组和列表的不同熟练掌握字典对象及其常用操作熟练掌握集合对象及其常用操作熟练应用内置对象解决实际问题3.1 列表与列表推导式列表的所有元素放在一对方括号中,相邻元素之间使用逗号分隔。在Python中,同一个列表中元素的数据类型可以各不相同,可以同时包含整数、实数、复数、字符串等基本类型的元素,也可以包含列表、元组、字典、集合、函数或其他任意对象。一对空的方括号表示空列表。3.1.1 创建列表 list(3,5
2、,7,9,11)#将元组转换为列表3,5,7,9,11 list(range(1,10,2)#将range对象转换为列表1,3,5,7,9 list(map(str,range(10)#将map对象转换为列表0,1,2,3,4,5,6,7,8,9 list(zip(abcd,1,2,3,4)#将zip对象转换为列表(a,1),(b,2),(c,3),(d,4)list(enumerate(Python)#将enumerate对象转换为列表(0,P),(1,y),(2,t),(3,h),(4,o),(5,n)list(filter(str.isdigit,a1b2c3d456)#将filter对
3、象转换为列表1,2,3,4,5,6 list(hello world)#将字符串转换为列表,每个字符转换为列中的一个元素h,e,l,l,o,w,o,r,l,d list(3,7,5)#将集合转换为列表,集合中的元素是无序的3,5,7 x=list()#创建空列表 x=1,2,3 del x#删除列表对象 x#对象删除后无法再访问,抛出异常NameError:name x is not defined3.1.2 使用下标访问列表中的元素data=list(range(10)print(data)print(data0)#第一个元素的下标为0print(data1)#第二个元素的下标为1print
4、(data-1)#-1表示最后一个元素的下标print(data15)#15不是有效下标,代码抛出异常3.1.3 列表常用方法(1)append()、insert()、extend()lst=1,2,3,4lst.append(5)lst.insert(0,0)lst.insert(2,1.5)lst.extend(6,7)print(lst)3.1.3 列表常用方法(2)pop()、remove()lst=1,2,3,4,5,6print(lst.pop()#删除并返回最后一个元素print(lst.pop(0)#删除并返回下标为0的元素,后面的元素向前移动print(lst.pop(2)#
5、删除并返回下标为2的元素,后面的元素向前移动print(lst)lst=1,2,3,2,4,2lst.remove(2)#删除第一个2,该方法没有返回值print(lst)3.1.3 列表常用方法(3)count()、index()lst=1,2,2,3,3,3,4,4,4,4print(lst.count(2)#输出2print(lst.index(4)#输出6print(lst.index(5)#代码抛出异常,提示5 is not in list3.1.3 列表常用方法(4)sort()、reverse()from random import sample#在range(10000)中任选
6、10个不重复的随机数data=sample(range(10000),10)print(data)data.reverse()#翻转,首尾交换,该方法没有返回值print(data)data.sort()#按元素大小进行排序,该方法没有返回值print(data)data.sort(key=str)#按所有元素转换为字符串后的大小进行排序print(data)3.1.4 列表推导式data=2*i for i in range(64)等价于data=for i in range(64):data.append(2*i)data=num for num in range(20)if num%2=
7、1等价于data=for num in range(20):if num%2=1:data.append(num)3.1.4 列表推导式from random import randomdata=random()for j in range(5)for i in range(3)等价于from random import randomdata=for i in range(3):temp=for j in range(5):temp.append(random()data.append(temp)3.1.5 切片操作切片是用来获取列表、元组、字符串等有序序列中部分元素的一种语法。在形式上,切片
8、使用2个冒号分隔的3个数字来完成。start:end:step其中第一个数字start表示切片开始位置,默认为0;第二个数字end表示切片截止(但不包含)位置(默认为列表长度);第三个数字step表示切片的步长(默认为1),省略步长时还可以同时省略最后一个冒号。当step为负整数时,表示反向切片,这时start应该在end的右侧。3.1.5 切片操作data=list(range(20)print(data:)#获取所有元素的副本print(data:3)#前三个元素print(data3:)#下标3之后的所有元素print(data:3)#每3个元素选取1个print(data-3:)#最后
9、3个元素print(data:-5)#除最后5个元素之外的所有元素3.2 元组与生成器表达式可以通过把若干元素放在一对圆括号中创建元组,如果只有一个元素的话则需要多加一个逗号,例如(3,)。也可以使用tuple()函数把列表、字典、集合、字符串以及range对象、map对象、zip对象或其他类似对象转换为元组。很多内置函数、标准库函数和扩展库函数也会返回元组或者包含元组的对象。3.2.1 元组与列表的区别元组是不可变的,不能直接修改元组中元素的值,也不能为元组增加或删除元素。因此,元组没有提供append()、extend()和insert()等方法,也没有remove()和pop()方法。元
10、组的访问速度比列表更快,开销更小。如果定义了一系列常量值,主要用途只是对它们进行遍历或其他类似操作,那么一般建议使用元组而不用列表。元组可以使得代码更加安全。例如,调用函数时使用元组传递参数可以防止在函数中修改元组,而使用列表则无法保证这一点。元组可用作字典的键,也可以作为集合的元素,但列表不可以,包含列表的元组也不可以。3.2.2 生成器表达式gen=(2*i for i in range(8)#创建生成器对象print(gen)print(list(gen)#转换为列表,用完了生成器对象中的所有元素print(tuple(gen)#转换为元组,得到空元组gen=(2*i for i in
11、range(8)#重新创建生成器对象print(next(gen)#使用next()函数访问下一个元素print(next(gen)for item in gen:#使用for循环访问剩余的所有元素 print(item,end=)3.2.3 序列解包x,y,z=1,2,3#多个变量同时赋值x,y,z=(False,3.5,exp)#元组支持序列解包x,y,z=1,2,3#列表支持序列解包x,y=y,x#交换两个变量的值x,y,z=map(int,123)#map对象支持序列解包data=a:97,b:98x,y=data.values()#使用字典的“值”进行序列解包3.3 字典data=d
12、ict(name=张三,age=18,sex=M)print(data)data=dict.fromkeys(1,2,3,4)#以指定的数据为“键”,“值”为空print(data)data=dict(zip(abcd,97,98,99,100)print(data)data=ch:ord(ch)for ch in abcd#字典推导式print(data)3.3.1 字典元素访问data=dict(name=张三,age=18,sex=M)print(dataname)#使用“键”作为下标,访问“值”print(data.get(age)print(data.get(address,不存在这
13、个键)#“键”不存在,返回默认值print(list(data)#把所有的“键”转换为列表print(list(data.values()#把所有的“值”转换为列表print(list(data.items()#把所有的元素转换为列表for key,value in data.items():#遍历字典的“键:值”元素 print(key,value,sep=t)3.3.2 字典元素修改、添加与删除(1)当以指定“键”为下标为字典元素赋值时,有两种含义:1)若该“键”存在,表示修改该“键”对应的值;2)若不存在,表示添加一个新元素。sock=IP:127.0.0.1,port:80sockpo
14、rt=8080#修改已有元素的“值”sockprotocol=TCP#增加新元素print(sock)3.3.2 字典元素修改、添加与删除(2)使用字典对象的update()方法可以将另一个字典的元素一次性全部添加到当前字典对象,如果两个字典中存在相同的“键”,则以另一个字典中的“值”为准对当前字典进行更新。sock=IP:127.0.0.1,port:80#更新了一个元素的“值”,增加了一个新元素sock.update(IP:192.168.9.62,protocol:TCP)print(sock)3.3.2 字典元素修改、添加与删除(3)可以使用字典对象的pop()删除指定“键”对应的元素
15、,同时返回对应的“值”。字典方法popitem()方法用于删除并返回一个包含两个元素的元组,其中的两个元素分别是字典元素的“键”和“值”。另外,也可以使用del删除指定的“键”对应的元素。sock=IP:192.168.9.62,port:80,protocol:TCPprint(sock.pop(IP)#删除并返回指定“键”的元素print(sock.popitem()#删除并返回一个元素del sockport#删除指定“键”的元素print(sock)3.4 集合Python集合是无序、可变的容器对象,所有元素放在一对大括号中,元素之间使用逗号分隔,同一个集合内的每个元素都是唯一的,不允
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 5-第3章 列表、元组、字典、集合与字符串 列表 字典 集合 字符串
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内