版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章列表概述列表是Python中内置可变序列,是若干元素的有序集合。列表中的每一个数据称为元素,列表的所有元素放在一对中括号“[”和“]”中,并使用逗号分隔开;在Python中,一个列表中的数据类型可以各不相同,可以同时分别为整数、实数、字符串等基本类型,甚至是列表、元素、字典、集合以及其他自定义类型的对象。例如:[10,20,30,40]['crunchyfrog','rambladder','larkvomit']['spam',2.0,5,[10,20]][['file1',200,7],['file2',260,9]]列表创建用方括号括起来并在其中用逗号分隔各个元素即可列表可以包含任意数量的元素,也可以是不同类型的数据,甚至可以是其他列表(嵌套列表)。#创建“numbers”列表,包含了一系列整数,可以用来表示一组数字数据。numbers=[1,2,3,4,5]
#创建“fruits”列表,包含了一系列字符串,每个字符串代表不同种类的水果。fruits=['apple','banana','orange','grape']
#创建“mixed_list”列表,包含了不同类型的元素,包括整数、字符串、布尔值和浮点数。mixed_list=[1,'apple',True,3.14]“nested_list”列表中的每个元素都是一个子列表,可以用来表示二维数组或矩阵。nested_list=[[1,2,3],[4,5,6],[7,8,9]]
#创建空列表,“empty_list”是一个空列表,它不包含任何元素,可以用来在程序执行过程中动态地添加元素。empty_list=[]列表创建-list函数#通过list()函数创建列表number_tuple=(1,2,3,4,5)number_list=list(number_tuple)print(number_list)#输出:[1,2,3,4,5]#将字符串转换为列表word="Fudan"word_list=list(word)print(word_list)#输出:['F','u','d','a','n']
列表创建-list函数#使用默认参数生成从0到4的整数序列:i=list(range(5))print(i)#输出:01234
#使用指定参数生成整数序列(起始值为1,结束值为10,步长为2)i=list(range(1,10,2))print(i)#输出:13579
#使用指定参数生成整数序列(起始值为0,结束值为10,步长为2)i=list(range(0,10,2))print(i)#输出:02468列表创建-list函数#逆序生成整数序列i=list(range(10,0,-1))print(i)#输出:10987654321
#使用range函数生成一个列表my_list=list(range(1,6))print(my_list)#输出:[1,2,3,4,5]words=['apple','banana','cherry','date']indices=list(range(len(words)))print(indices)#输出:[0,1,2,3]列表访问正向索引,第一个元素的索引为0,第二个元素的索引为1,依此类推my_list=['apple','banana','orange','grape']print(my_list[0])#输出:'apple'print(my_list[2])#输出:'orange'other_list=“apple”print(other_list[0])#输出:'a'print(other_list[3])#输出:'l'列表访问逆向索引,从列表末尾开始的位置,-1表示最后一个元素,-2表示倒数第二个元素,以此类推。my_list=['apple','banana','orange','grape']print(my_list[-1])#输出:'grape'print(my_list[-2])#输出:'orange'逆向索引的有效范围是-1到-n,这里的n指的是列表长度,即列表中的元素个数。如果使用超出有效索引范围的索引访问列表元素,将会引发“IndexError”异常。使用切片索引”:片操作允许获取列表中指定范围的元素,包括起始索引对应的元素,但不包括结束索引对应的元素。列表访问my_list=['apple','banana','orange','grape']print(my_list[1:3])#输出:['banana','orange']my_list=['apple','banana','orange','grape']print(my_list[:2])#输出:['apple','banana']print(my_list[2:])#输出:['orange','grape']my_list=['apple','banana','orange','grape']print(my_list[::2])#输出:['apple','orange']#此例中,起始元素是apple,索引为0,下一步索引为0+2,对应元素是orange.list.index()方法用于返回列表中指定元素的索引值。如果列表中存在多个相同的元素,该方法将返回第一个匹配的元素的索引。如果要查找的元素不在列表中,将引发ValueError。列表查找用法:index=list.index(element,start,end)element:需要查找的元素。start和end(可选):指定查找的范围,默认为整个列表。列表查找fruits=['apple','banana','orange','apple']
#查找元素'orange'在列表中的索引index=fruits.index('orange')print("Indexof'orange':",index)#输出:Indexof'orange':2#指定范围:numbers=[10,20,30,20,40,50]
#在指定范围内查找元素20的索引
index_within_range=numbers.index(20,1,4)print("Indexof20withinrange(1,4):",index_within_range)#输出:Indexof20withinrange(1,4):1列表查找#处理元素不存在的情况:animals=['lion','tiger','elephant']
#查找元素'zebra'在列表中的索引#此处中try语句的用法请参照第13章异常处理try:index_of_zebra=animals.index('zebra')print("Indexof'zebra':",index_of_zebra)exceptValueErrorase:print("Error:",e)#输出:Error:'zebra'isnotinlistlist.count(x)方法用于返回列表中值为x的元素的数量。列表计数numbers=[1,2,3,1,4,1,5,1]
#计算值为1的元素数量count_of_1=numbers.count(1)print("Countof1:",count_of_1)#输出:Countof1:4列表修改-直接修改#直接修改元素my_list=['apple','banana','orange']list[1]='lemon'print(my_list)#输出:['apple','lemon','orange']列表修改-list.appendmy_list=['apple','banana','orange']my_list.append('grape')print(my_list)#输出:['apple','banana','orange','grape']列表修改-list.extendmy_list=['apple','banana','orange']another_list=['grape','pineapple','melon']my_list.extend(another_list)print(my_list)#输出:['apple','banana','orange','grape','pineapple','melon']列表修改-list.insertmy_list=['apple','banana','orange']my_list.insert(1,'grape')print(my_list)#输出:['apple','grape','banana','orange']列表修改-加法和乘法加法操作类似于extend方法list1=[1,2,3]list2=[4,5,6]result=list1+list2print(result)#输出:列表乘法则用于将列表中的元素重复指定次数,生成一个新列表。[1,2,3,4,5,6]乘法用于将列表中的元素重复指定次数,生成一个新列表。list1=[1,2]result=list1*3print(result)#输出:[1,2,1,2,1,2]append(),extend(),insert()是对原列表的直接修改,列表的加法和乘法操作都不会修改原始列表,而是生成一个新的列表。列表排序-list.sortlist.sort(key=None,reverse=False)方法用于对列表进行就地排序,即修改原始列表而不返回新的列表。key:用于指定排序的关键字函数,根据此函数的返回值进行排序。reverse:如果设置为True,则按降序排列;默认为False,按升序排列。numbers=[3,1,4,1,5,9,2,6,5]
#升序排序numbers.sort()print("Sortedinascendingorder:",numbers)
#降序排序numbers.sort(reverse=True)print("Sortedindescendingorder:",numbers)
#输出:Sortedinascendingorder:[1,1,2,3,4,5,5,6,9]Sortedindescendingorder:[9,6,5,5,4,3,2,1,1]列表排序-sortedsorted(iterable,key=None,reverse=False)函数用于对可迭代对象进行排序,返回一个新的已排序列表,而不修改原始对象。iterable:需要排序的可迭代对象,如列表。key:用于指定排序的关键字函数,根据此函数的返回值进行排序。reverse:如果设置为True,则按降序排列;默认为False,按升序排列。。numbers=[3,1,4,1,5,9,2,6,5]
#升序排序sorted_numbers_asc=sorted(numbers)print("Sortedinascendingorder:",sorted_numbers_asc)
#降序排序sorted_numbers_desc=sorted(numbers,reverse=True)print("Sortedindescendingorder:",sorted_numbers_desc)
#输出:Sortedinascendingorder:[1,1,2,3,4,5,5,6,9]Sortedindescendingorder:[9,6,5,5,4,3,2,1,1]列表反转-list.reverse颠倒元素的顺序。该方法没有返回值numbers=[1,2,3,4,5]
#反转列表numbers.reverse()print("Reversedlist:",numbers)
#输出:Reversedlist:[5,4,3,2,1]
#多级列表的反转:nested_list=[[1,2,3],[4,5,6],[7,8,9]]nested_list.reverse()
print("Reversednestedlist:",nested_list)输出:Reversednestedlist:[[7,8,9],[4,5,6],[1,2,3]]#在这个例子中,reverse()方法反转了第一级列表(外部列表),没有反转第二级列表(内部列表)。列表反转-reversedreversed()返回的是一个反转后的迭代器,而不是就地修改原始列表。reversed_list=list(reversed(iterable))iterable:要反转的可迭代对象,如列表、元组等。numbers=[1,2,3,4,5]
#使用reversed反转列表reversed_numbers=list(reversed(numbers))
print("Originallist:",numbers)print("Reversedlist:",reversed_numbers)#输出:opycodeOriginallist:[1,2,3,4,5]Reversedlist:[5,4,3,2,1]列表删除-remove用于删除列表中指定值的第一个匹配项。如果列表中不存在要删除的元素,则抛出异常。fruits=['apple','banana','orange','apple']fruits.remove('apple')print(fruits)#输出:['banana','orange','apple']列表删除-pop用于删除列表中指定索引位置(默认为最后一个)的元素,并返回被删除的元素。如果给定的索引超出了列表的范围则抛出异常。numbers=[10,20,30,40,50]removed_number=numbers.pop(2)print(numbers)print("Removednumber:",removed_number)#输出:[10,20,40,50]Removednumber:30列表删除-del可以用于删除列表中指定位置的元素,也可以删除整个列表#删除指定位置的元素colors=['red','green','blue']delcolors[1]print(colors)#输出:['red','blue']#此示例中,delcolors[1]删除了列表中索引为1的元素'green'。
#示例-删除整个列表grades=[90,85,88,92]delgrades#尝试访问grades将引发NameError#此示例中,delgrades删除了整个列表grades。列表删除-clear清空整个列表cars=['Toyota','Honda','Ford']cars.clear()print(cars)#输出:[]列表拷贝-浅拷贝copy浅拷贝创建一个新的列表,其中包含原始列表中的元素的引用。如果原始列表中的元素是可变对象(如列表或字典),则新列表中的相应元素也将引用相同的对象original_list=[1,[2,3],4]shallow_copy_list=original_list.copy()
#修改原始列表的元素original_list[1][0]='X'
print(original_list)print(shallow_copy_list)#输出:[1,['X',3],4][1,['X',3],4]#使用切片进行浅拷贝:original_list=[1,[2,3],4]shallow_copy_list=original_list[:]
#修改原始列表的元素original_list[1][0]='X'
print(original_list)print(shallow_copy_list)#输出:[1,['X',3],4][1,['X',3],4]列表拷贝-深拷贝deepcopy深拷贝创建一个新的列表,其中包含原始列表中的元素的副本。即使原始列表中的元素是可变对象,新列表中的相应元素也是原始元素的副本,而不是引用。importcopy
original_list=[1,[2,3],4]deep_copy_list=copy.deepcopy(original_list)
#修改原始列表的元素original_list[1][0]='X'
print(original_list)print(deep_copy_list)#输出:[1,['X',3],4][1,[2,3],4]内置库函数numbers_list=[1,2,3,4,5]print(3innumbers_list)#输出True,表示3在列表中print(7notinnumbers_list)#输出True,表示7不在列表中numbers_list=[1,2,3,4,5,6,7]print(len(numbers_list))#输出列表长度:7内置库函数numbers_list=[1,2,3,4,5,6,7]print(max(numbers_list))#输出列表中的最大值:7print(min(numbers_list))#输出列表中的最小值:1
char_list=['b','c','a','z']print(max(char_list))#输出字符列表中的最大值:'z'print(min(char_list))#输出字符列表中的最小值:'a'
str_list=["apple","peach","cherry"]print(max(str_list))#输出字符串列表中的最大值:"peach"print(min(str_list))#输出字符串列表中的最小值:"apple"#total=sum(iterable)其中,iterable是一个可迭代对象,例如列表。numbers=[1,2,3,4,5]total=sum(numbers)print(total)#输出:15numbers=[1,2,3,4,5]total_with_start=sum(numbers,10)print(total_with_start)#输出:25内置库函数内置库函数-enumerateenumerate(iterable,start=0)iterable:需要枚举的可迭代对象。start(可选):指定起始索引,默认为0。fruits=['apple','banana','orange']
forindex,valueinenumerate(fruits):print(f"Index:{index},Value:{value}")输出:Index:0,Value:appleIndex:1,Value:bananaIndex:2,Value:orange#指定起始索引:fruits=['apple','banana','orange']
forindex,valueinenumerate(fruits,start=1):print(f"Index:{index},Value:{value}")#输出:Index:1,Value:appleIndex:2,Value:bananaIndex:3,Value:orange内置库函数-enumeratestudents=['Alice','Bob','Charlie']#假设学号从2024001开始forid,nameinenumerate(students,start=2024001):print(f"StudentID:{id},StudentName:{name}")StudentID:2024001,StudentName:AliceStudentID:2024002,StudentName:BobStudentID:2024003,StudentName:Charliemy_list=[1,2,3,4,5]indexes_to_remove=[]
forindex,elementinenumerate(my_list):ifelement%2==0:#假设需要删除偶数元素indexes_to_remove.append(index)
#统一删除要删除的元素forindexinsorted(indexes_to_remove,reverse=True):delmy_list[index]内置库函数-enumeratemy_list=['apple','banana','orange']
#使用enumerate()函数获取索引和
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 吞咽障碍患者的吞咽障碍康复团队协作
- 卧位对神经系统的保护
- 销售员半年个人工作总结15篇
- 结膜炎在特殊职业人群中的防护
- 水面垃圾收集机征求意见稿编制说明
- 2026年高层住宅安全屋设计规范标准
- 2026年门店引流活动策划案例分享
- 冷水滩区2024湖南永州冷水滩区行政审批服务局招聘见习生笔试历年参考题库典型考点附带答案详解
- 光明区2025年4月广东深圳光明科学城知识产权公共服务中心选聘特级特聘一般特聘笔试历年参考题库典型考点附带答案详解
- 会同县2025湖南怀化市会同县县直事业单位引进高层次及急需紧缺人才12人笔试历年参考题库典型考点附带答案详解
- 门座式起重机安全操作规程
- TCSAE《摩托车和轻便摩托车操纵稳定性试验方法》编制说明
- 可爱的蘑菇课件
- 2025年离异父母抚养费用合同样本
- 江西联益科技股份有限公司年产200万平方米线路板项目环评资料环境影响地表水环境影响专项评价
- DZ/T 0275.5-2015岩矿鉴定技术规范第5部分:矿石光片鉴定
- T/CCCI 002-2024企业班组文化建设星级评价标准
- DB31/T 8-2020托幼机构消毒卫生规范
- 高职单招知识题库
- T-SZNB 005-2024 水果分级标准 库尔勒香梨
- 《高级有机合成技术-氧化反应》课件
评论
0/150
提交评论