版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
列表元素的遍历制作:教材编写团队出版社:机械工业出版社《Python编程基础与应用》配套课件本课件为《Python编程基础与应用(第2版)》配套教学资源,由编写团队精心打造。为便于教学使用,团队同步提供了丰富的辅助材料,涵盖微课视频、教学课件、实训手册、习题答案、课程标准及程序源代码等。同时,教材配套超星教学示范包,支持一键克隆为网络在线课程,助力高效开展线上线下混合式教学。欢迎联系出版方订购使用。
书名:《Python编程基础与应用(第2版)》出版社:机械工业出版社主编:蓝永健、陈冬冬副主编:蔡德琛、朱海鑫、邓爱玲+contents目录列表的列表表达式列表与字符串的相互转换列表元素的遍历列表的列表表达式01列表表达式(列表推导式)语法在Python中,列表推导式(也称为列表表达式)是一种简洁地构建列表的语法。列表推导式基于一个或多个for循环和(可选的)if条件语句,用于从现有的可迭代对象(如列表、元组、字符串、集合等)中快速生成新的列表。
列表推导式的基本语法如下:[expressionforiteminiterableifcondition]expression:用于计算每个元素的表达式。item:从iterable中取出的当前元素。iterable:可迭代对象,如列表、元组、字符串等。condition(可选):一个布尔表达式,用于过滤元素。如果条件为真,则保留当前元素;如果为假,则忽略当前元素。列表表达式(列表推导式)语法列表表达式语法应用简单的列表推导式:从1到10的平方数和立方数。示例1squares=[x**2forxinrange(1,11)]print(squares)#输出:[1,4,9,16,25,36,49,64,81,100]#继续使用列表推导式创建其他列表#创建1到10的立方列表cubes=[x**3forxinrange(1,11)]print(cubes)#输出:[1,8,27,64,125,216,343,512,729,1000]列表表达式语法应用带有条件的列表推导式:从1到10的平方数,但只保留偶数。示例2#方法1:先生成平方数,再筛选偶数squares_even1=[x**2forxinrange(1,11)if(x**2)%2==0]print("方法1结果:",squares_even1)#输出:[4,16,36,64,100]#方法2:直接筛选偶数进行平方(更高效)squares_even2=[x**2forxinrange(1,11)ifx%2==0]print("方法2结果:",squares_even2)#输出:[4,16,36,64,100]#验证两种方法结果相同print("两种方法结果相同:",squares_even1==squares_even2)#输出:True#分步解释:#1.range(1,11)生成数字:1,2,3,4,5,6,7,8,9,10#2.ifx%2==0筛选出偶数:2,4,6,8,10#3.x**2计算每个偶数的平方:4,16,36,64,100#4.最终得到列表:[4,16,36,64,100]列表表达式语法应用使用嵌套循环的列表推导式:从两个列表的笛卡尔积中生成元组。注:元组的知识,将在后面章节学习。示例3#定义两个列表colors=['红色','蓝色','绿色']sizes=['S','M','L']#使用嵌套循环的列表推导式生成笛卡尔积cartesian_product=[(color,size)forcolorincolorsforsizeinsizes]print("笛卡尔积结果:")foritemincartesian_product:print(item)#等效的传统嵌套循环写法:traditional_result=[]forcolorincolors:forsizeinsizes:traditional_result.append((color,size))print("\n传统方法结果相同:",cartesian_product==traditional_result)#输出:#('红色','S')#('红色','M')#('红色','L')#('蓝色','S')#('蓝色','M')#('蓝色','L')#('绿色','S')#('绿色','M')#('绿色','L')列表表达式语法应用使用嵌套循环的列表推导式:从两个列表的笛卡尔积中生成元组。注:元组的知识,将在后面章节学习。示例3numbers=[1,2,3]letters=['A','B']combinations=[(num,letter)fornuminnumbersforletterinletters]print("\n数字字母组合:",combinations)#输出:[(1,'A'),(1,'B'),(2,'A'),(2,'B'),(3,'A'),(3,'B')]列表表达式语法应用从字符串中生成列表:将字符串转换为字符列表。示例4#方法1:直接使用list()函数string1="Python"char_list1=list(string1)print("方法1结果:",char_list1)#输出:['P','y','t','h','o','n']#方法2:使用列表推导式string2="编程"char_list2=[charforcharinstring2]print("方法2结果:",char_list2)#输出:['编','程']列表表达式语法应用列表推导式与字典推导式结合:根据列表中的元素生成字典。字典的知识,将在后面章节学习。示例5#示例1:将字符串列表转换为字典,键为字符串,值为字符串长度words=['苹果','香蕉','橙子','草莓']word_length_dict={word:len(word)forwordinwords}print("单词长度字典:",word_length_dict)#输出:{'苹果':2,'香蕉':2,'橙子':2,'草莓':2}#示例2:将数字列表转换为字典,键为数字,值为数字的平方numbers=[1,2,3,4,5]square_dict={num:num**2fornuminnumbers}print("数字平方字典:",square_dict)#输出:{1:1,2:4,3:9,4:16,5:25}列表表达式语法应用列表推导式与字典推导式结合:根据列表中的元素生成字典。字典的知识,将在后面章节学习。示例5#示例3:转换键值对-将列表中的元组转换为字典pairs=[('name','张三'),('age',25),('city','北京')]info_dict={key:valueforkey,valueinpairs}print("信息字典:",info_dict)#输出:{'name':'张三','age':25,'city':'北京'}列表与字符串的相互转换02list()和split()字符串与列表的转换把字符串转换为列表时,可以自动分割,以空格分割,以逗号分割或者以其它指定的符号分割。示例1#字符串转列表list1=list('我爱中国')#自动分割为列表list2='Thisisapen'.split()#以空格分割为列表list3='自行车,汽车,火车'.split(',')#以逗号分割为列表print('list1:',list1)print('list2:',list2)print('list3:',list3)#列表转换为字符串list4=['a班','b班','c班']separator1='和'#分隔连接字符,以一个汉字str1=separator1.join(list4)print('以一个汉字连接:',str1)separator2=','#分隔连接字符,以一个逗号str2=separator2.join(list4)print('以一个逗号连接:',str2)#以下是结果list1:['我','爱','中','国']list2:['This','is','a','pen']list3:['自行车','汽车','火车']以一个汉字连接:a班和b班和c班以一个逗号连接:a班,b班,c班字符串与列表的转换
使用split()将字符串转换为列表split()是一个字符串方法,用于将字符串拆分为子字符串列表。默认情况下,split()在任意空白(空格、换行等)处拆分字符串,但你也可以指定一个分隔符。示例2#示例1:默认使用空格分割sentence="Python是一门编程语言"word_list1=sentence.split()print("默认分割:",word_list1)#输出:['Python','是一门','编程','语言']#示例2:指定分隔符csv_data="苹果,香蕉,橙子,草莓"fruit_list=csv_data.split(',')print("逗号分割:",fruit_list)#输出:['苹果','香蕉','橙子','草莓']#示例3:使用多个字符作为分隔符data="红色|蓝色|绿色|黄色"color_list=data.split('|')print("竖线分割:",color_list)#输出:['红色','蓝色','绿色','黄色']#示例4:限制分割次数ip_address="192.168.1.1"ip_parts=ip_address.split('.',2)#只分割前2次print("限制分割次数:",ip_parts)#输出:['192','168','1.1']字符串与列表的转换
使用list()和迭代将字符串转换为列表虽然split()是更常用的方法,但你也可以使用list()和迭代来将字符串转换为列表(例如,将字符串的每个字符转换为一个列表元素)。list(iter(s))先创建迭代器再转为列表,与方法2效果相同,,这个方法比较少用。示例3s="hello"#使用列表推导式将字符串的每个字符转换为列表元素list_of_chars=[charforcharins]print(list_of_chars)#输出:['h','e','l','l','o']#或者简单地使用list()list_of_chars=list(s)print(list_of_chars)#输出:['h','e','l','l','o']#使用list()和iter()list_of_chars=list(iter(s))print(list_of_chars)#输出:['h','e','l','l','o']字符串与列表的转换
使用join()将列表转换为字符串join()是一个字符串方法,用于将序列(如列表、元组或字符串)中的元素连接成一个字符串。你需要提供一个分隔符作为join()方法的参数。示例4在这个例子中,使用逗号作为分隔符将列表中的元素连接成一个字符串。如果你不提供分隔符(即使用空字符串""作为分隔符),那么列表中的元素将直接连接在一起。#使用逗号作为分隔符s=",".join(list_of_fruits)print(s)#输出:apple,banana,orange#使用空格作为分隔符s1="".join(list_of_fruits)print(s1)#输出:applebananaorange#使用连字符作为分隔符s2="-".join(list_of_fruits)print(s2)#输出:apple-banana-orange列表元素的遍历03使用for进行遍历结合for循环和in可以快速遍历,也可以计算出列表的元素个数,使用while循环和列表的下标进行遍历。示例1#定义一个列表list1=['画笔','铅笔','钢笔']print(list1)#方法1:使用for进行遍历fortempinlist1:print('我要买',temp)#以下是结果['画笔','铅笔','钢笔']我要买画笔我要买铅笔我要买钢笔他也买画笔他也买铅笔他也买钢笔使用while和列表的下标进行遍历使用while循环和列表的下标进行遍历。相比较而言,使用while需要明确指定循环结束的条件。示例2#定义一个列表list1=['画笔','铅笔','钢笔']print(list1)#方法2:使用while和列表的下标进行遍历listLen=len(list1)#取得列表的长度i=0#循环递增值,初始为0,因为列表第一个下标为0whilei<listLen:print('他也买',list1[i])#使用列表的下标数字取出元素的值
i=i+1#下标自增1#以下是结果['画笔','铅笔','钢笔']我要买画笔我要买铅笔我要买钢笔他也买画笔他也买铅笔他也买钢笔列表元素的遍历
遍历并修改元素(不推荐直接修改列表内的元素,但可以用于打印修改后的值)示例3#定义一个列表numbers=[1,2,3,4,5]#使用for循环遍历列表并打印修改后的值(注意这里并没有直接修改列表)fori,numinenumerate(numbers):#enumerate同时获取索引和值
new_num=num*2#假设我们要将每个元素乘以2print(f'原始值:{num},修改后的值:{new_num}')#
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全健康与环境知识教育
- 第三季度个人思想总结报告2026(3篇)
- 2026汽车线束行业市场发展现状及技术趋势分析报告
- 2026中国集成电路设计行业发展瓶颈与突破方向报告
- 2026中国知识产权服务行业发展痛点与标准化建设报告
- 2026汽车物流行业市场现状及智能化转型与供应链优化研究报告
- 2026农民专业合作社规范化运营与绩效评价分析报告
- 广东省肇庆市高中英语 Unit 4 Body language Language Points教学设计 新人教版必修4
- 实验实训6 硬枝扦插教学设计中职专业课-果树生产技术-农林类-农林牧渔大类
- 高中物理 第三章 磁场 5 洛伦兹力的应用教案 教科版选修3-1
- 2026年河南中职对口升学机电类专业试题含答案
- 2026年江苏省徐州市中考英语真题(含答案)
- 浙江省G12名校协作体2026-2027学年高三上学期开学考试生物+答案
- 《电机与电气控制技术》课件-1-4 继电器的认识与检测
- 高中化学必修一必修二综合测试题和解答
- (正式版)JBT 14660-2024 额定电压6kV到30kV地下掘进设备用橡皮绝缘软电缆
- 建筑工程分部分项工程划分表(新版)
- 消防安全技术实务1
- 《化工设备基础》课程标准
- GB/T 29163-2012煤矸石利用技术导则
- GB/T 20634.3-2008电气用非浸渍致密层压木第3部分:单项材料规范由桦木薄片制成的板材
评论
0/150
提交评论