【Python从入门到进阶】12、列表高级应用
创始人
2025-05-30 14:43:27
0

接上篇《11、字符串高级应用》
上两篇我们完善了字符串的学习,了解字符串的高级应用。本篇我们来学习有关列表的高级应用操作(列表的增删改查)。

一、列表高级定义

在我们使用list列表的过程中,常常需要对list进行处理,诸如插入新的元素、删除某个元素、修改某个元素、查找匹配的某个元素值等,这些操作都需要使用python内置的对列表进行逻辑操作的函数来完成,这部分内容就是list列表的高级应用。
下面我们通过实例及应用场景来为大家介绍列表高级应用中使用到的函数。

二、列表函数

1、添加元素

在list列表中添加元素有以下几种方法:
(1)append在末尾添加元素
append会把新元素添加到列表末尾,例子如下:

#列表的添加-append
#定义变量A,默认有3个元素
A = ['张三','李四','王五']print(f"----添加之前,列表A的数据----A={A}")#提示,并添加元素
temp = input('请输入要添加的员工姓名:')
A.append(temp)print(f'----添加之后,列表A的数据----A={A}')

效果:

这里新增的一个元素,就被追加在列表的最后一个。

(2)insert在指定位置插入元素

列表的insert函数可以在指定位置插入元素,格式如下:

insert(index,object)

其中“index”是需要插入的位置编号,为整数;object为需要插入的元素本身。样例如下:

#列表的添加-insert插入
char_list = ['a','c','d']
print(f'插入前:char_list={char_list}')
#index的值就是你想插入数据的那个下标
char_list.insert(1,'b')
print(f'插入后:char_list={char_list}')

效果:

插入前:char_list=['a', 'c', 'd']
插入后:char_list=['a', 'b', 'c', 'd']

(3)extend合并两个列表
extend可以将一个集合中的元素逐一添加到另一个集合中,格式如下:

extend(iterable)

其中iterable是一个可以迭代的对象(即里面有好多元素的对象),例如列表、元祖等等。样例如下:

#列表的添加-extend合并
num_list = [1,2,3]
num_list2 = [4,5,6]num_list.extend(num_list2)
print(f"num_list={num_list}")

效果:

num_list=[1, 2, 3, 4, 5, 6]

还有一种最简单的合同方法,是两个列表相加:

num_list3 = num_list1 + num_list2

这里num_list3就是两个列表前后拼接在一起的新列表。

2、修改元素

我们是通过指定下标来访问列表元素,因此改变元素的时候,为指定的下标赋值即可,例如:

#列表的修改
A = ['张三','李四','王五']print(f"----添加之前,列表A的数据----A={A}")#修改元素
#可以通过下标来修改,注意列表中的下标是从0开始的
A[1]="赵六"print(f'----添加之后,列表A的数据----A={A}')

效果:

----添加之前,列表A的数据----A=['张三', '李四', '王五']
----添加之后,列表A的数据----A=['张三', '赵六', '王五']

3、查找元素

所谓的查找,就是看看指定的元素是否存在,以及查看元素所在的位置,主要包含以下几种方法:
(1)in和not in
Python中查找的常用方法为:

●in(存在),如果存在那么结果为true,否则为false
●not in(不存在),如果不存在那么结果为true,否则false

样例代码:

#元素查找
nameList=['刘德华','张学友','郭富城','黎明']#获取用户要查找的名字
findName = input('请输入要查找的姓名:')#查找是否存在
if findName in nameList:print(f'在列表中找到了名为{findName}的元素')
else:print('没有找到')

效果:

请输入要查找的姓名:黎明
在列表中找到了名为黎明的元素请输入要查找的姓名:周杰伦
没有找到

注:not in和in的使用方式刚好相反,这里就不再演示,大家自己可以试一下。

(2)index和count
●index函数可以判断当前要查找的元素内容,在集合的哪个位置,如果该元素在集合中存在,会返回一个下标值;如果不存在,会返回一个ValueError报错(所以index要谨慎使用),样例如下:

#index函数查找元素
numList=[1,2,3,5,3,6]
#查找列表中元素内容为3的元素位置,默认只会查找第一个
#列表中有多个相同的元素,也只会查找第一个
print(numList.index(3)) #结果输出:2#index()中指定位置查找,第二参数是起始位置,第三个参数为查找范围
#这里从第3个位置查找内容为“3”的元素,范围是第3个位置后的5个元素内
print(numList.index(3,3,5)) #输出结果:4

●count函数用来统计一个列表中元素出现了多少次,样例代码:

#count统计某个元素在列表中出现的次数
listTest1 = [1,2,4,5,4,6,4]
print(listTest1.count(4)) #结果输出:3

4、删除元素

类比现实生活中,如果某位同学调班了,那么就应该把这个转班后的同学姓名删除掉;在开发过程中经常用到删除这种功能。
删除列表元素的常用方法有:

● del:根据下标进行删除
● pop:删除最后一个元素
● remove:根据元素的值进行删除

(1)del
 

bookName = ['小时代','骆驼祥子','哈利波特','三国演义']
print(f"删除之前:bookName={bookName}")
del bookName[0] #把小时代干掉
print(f"删除之前:bookName={bookName}")

效果:

删除之前:bookName=['小时代', '骆驼祥子', '哈利波特', '三国演义']
删除之前:bookName=['骆驼祥子', '哈利波特', '三国演义']

(2)pop
 

bookName = ['小时代','骆驼祥子','哈利波特','三国演义']
print(f"删除之前:bookName={bookName}")
bookName.pop()  #把最后一个“三国演义”干掉
print(f"删除之前:bookName={bookName}")

效果:

删除之前:bookName=['小时代', '骆驼祥子', '哈利波特', '三国演义']
删除之前:bookName=['小时代', '骆驼祥子', '哈利波特']

(3)remove
 

bookName = ['小时代','骆驼祥子','哈利波特','三国演义']
print(f"删除之前:bookName={bookName}")
bookName.remove("骆驼祥子")  #把“骆驼祥子”干掉
print(f"删除之前:bookName={bookName}")

效果:

删除之前:bookName=['小时代', '骆驼祥子', '哈利波特', '三国演义']
删除之前:bookName=['小时代', '哈利波特', '三国演义']

5、其他函数

(1)sort函数
Python的列表排序函数sort(),按照ASCII码进行排序,样例如下:

#列表的排序函数sort()
listTest1 = [6,3,9,1]
listTest1.sort()
print(listTest1) #结果输出:[1,3,6,9]

sort还可以设置两个参数,一个是key,一个是reverse。对于key,是一个函数,返回列表里元素用于比较大小的值,如果列表里的元素都是整数,因此用不上key这个参数,如果列表里的元素无法直接进行大小比较,就必须指定参数key。如下面的样例,一个装满了字典的数组,我们通过比较其每个字典元素的人员年龄来进行排序:

#sort通过函数参数,指定排序方式
list = [{"name":"张三","age":35,"job":"架构师"},{"name":"李四","age":23,"job":"程序员"},{"name":"黄婷婷","age":21,"job":"美工"},{"name":"张建洪","age":55,"job":"总经理"}]
#定义排序函数
def compare(x):return x["age"] #按照年龄元素排序
list.sort(key=compare)
n = 0
for ele in list:print(f'ele[{n}] = ', ele)n+=1

效果:

ele[0] =  {'name': '黄婷婷', 'age': 21, 'job': '美工'}
ele[1] =  {'name': '李四', 'age': 23, 'job': '程序员'}
ele[2] =  {'name': '张三', 'age': 35, 'job': '架构师'}
ele[3] =  {'name': '张建洪', 'age': 55, 'job': '总经理'}

而reverse设置排序的方法,默认为False表示从小到大排序,对上面的列表从大到小排序可以这样写:

#列表的排序函数sort()
listTest1 = [6,3,9,1]
listTest1.sort(reverse=True)
print(listTest1) #结果输出:[9,6,3,1]

(2)reverse()函数
reverse()为Python列表的反转函数,用来将列表顺序整个反过来,样例代码如下:

#reverse()列表的反转函数
listTest = [1,2,3]
listTest.reverse()
print(listTest) # 结果:[3,2,1]

(3)clear()函数
用于列表清空的函数,可以将整个列表所有元素清除,变为一个空的列表:

#clear()列表清空函数
listTest = [1,2,3,4,5,6,7,8]
listTest.clear()
print(listTest) #结果输出:[]


至此,有关Python列表高级应用的相关内容就讲解完毕了,下一篇我们来继续学习Python中元祖的高级应用,以及字符串、列表和元祖的切片操作。

参考:尚硅谷Python爬虫教程小白零基础速通教学视频

转载请注明出处:https://blog.csdn.net/acmman/article/details/129648761

相关内容

热门资讯

本周外盘看点丨美联储最新决议来... 来源:第一财经 欧美二季度GDP表现如何,特朗普关税谈判“大限”到来。 上周国际市场风云变幻,美国...
生态环境部逯世泽:全国碳市场量... 21世纪经济报道记者雷椰 李德尚玉 北京报道 7月26日,由冶金工业规划研究院主办,中国节能协会冶金...
原创 帮... 刚刚,后台好多朋友问,帮主啊,国家统计局刚发了上半年的工业利润数据,下降了1.8%,这是不是经济不行...
“国补”来了!第三批690亿元... 国家发展改革委下达今年第三批690亿元超长期特别国债支持消费品以旧换新资金。 2025年以来,国家发...
海拍客IPO,创始人抵押价值上... 瑞财经 严明会 6月30日,Yangtuo Technology Inc.(以下简称“海拍客”)向港...
提前涨停!快递巨头出手:收购! 【导读】布局品质快递,申通快递以3.62亿元收购菜鸟旗下丹鸟物流 中国基金报记者 杨晨 7月25日晚...
第八届虹桥国际经济论坛发布主题... 第八届虹桥国际经济论坛(简称“虹桥论坛”)倒计时迎来一百天。记者获悉,第八届虹桥论坛的主题是“开放共...
21独家|吴清挂帅!资本市场超... 21世纪经济报道 记者 崔文静 上海报道 7月26日,一场关乎2亿股民的重磅会议召开,资本市场“国家...
原创 A... 最近的行情,简直像是被注入了一针强心剂,让不少老股民都忍不住揉眼睛——这是咱们熟悉的大盘吗?原本在3...
关于比特币,你可能不知道的(二... 本文来自微信公众号:,作者:经济小张,原文标题:《关于比特币,你可能不知道的(2):让比特币独一无二...
【WAIC2025】阶跃星辰发... 记者 钱玉娟 在2025世界人工智能大会(下称“WAIC 2025”)开幕前夜,7月25日,中国人工...
每周股票复盘:浙数文化(600... 截至2025年7月25日收盘,浙数文化(600633)报收于14.05元,较上周的14.01元上涨0...
博思软件上市9周年:归母净利润... 博思软件自2016年7月26日上市至今,已迎来9周年。从上市首日收盘价为16.82元、市值11.46...
每周股票复盘:传音控股(688... 截至2025年7月25日收盘,传音控股(688036)报收于76.2元,较上周的74.69元上涨2....
上海第六批土拍收官:全国单价地... 观点网7月25日,为期两日的上海六批次8宗地土拍落下帷幕,热度再创新高。 第二日出让的3宗地块分布于...
“国补”来了!第三批690亿元... 关注我们哦! 国家发展改革委下达今年第三批690亿元超长期特别国债支持消费品以旧换新资金 2025年...
和讯投顾黄杰:股市最近应该买阴... 今天怎么操作?和讯投顾黄杰分析,今天的策略是尾盘低吸科技低吸小票,或者明天低吸科技低吸小票,这是我的...
市场监管总局:已暂停充电宝及电... 7月25日,市场监管总局消息,从2024年开始将充电宝及其关键部件锂电池纳入CCC认证管理,近日正组...
门店“转卖”会员,把消费者当什... 预付式消费以其便捷与优惠在健身、教培、美容等行业广泛应用。针对预付式消费门店完全“跑路”的情况,相关...