【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

相关内容

热门资讯

走进小城看消费丨江西资溪:低碳...   夏日时节下午4点,江西省抚州市资溪县大觉山景区漂流终点依然热闹。来自南昌的游客余鑫漂流结束后没有...
【中原晨会0625】市场分析专... 来源:市场资讯 (来源:中原证券研究所) 本期重点研报目录 【中原策略】市场分析:电子半导体领涨 ...
南向资金连买4日!低费率+可月... 6月25日早盘,港股红利资产震荡整理。截至11时14分,港股红利低波ETF招商(520550)下跌0...
618成交破百万!紫荆花用一套... 一年一度的618年中大促,是消费市场的晴雨表,也是品牌间最激烈的角力场。当各大品牌在直播间里铆足了劲...
原创 黄... 2026年6月25日的国际金价已经从前期的5500美元高点跌到4200美元下方,累计跌幅超过22%,...
英伟达CEO:Vera Rub... 截至9:38,中证半导体材料设备主题指数(931743)涨2.36%创新高;权重股中,中微公司涨3....
再被催债16亿!“钢铁大王”戴... 澎湃新闻记者 贺梨萍 因“铁本事件”入狱五年的戴国芳重返钢铁行业,但他并没有完成从阶下囚再到“钢铁大...
周三原油价格下跌 随着美国和伊朗在和平谈判中取得进展,越来越多的油轮公开穿越霍尔木兹海峡,原油在战时的价格上涨已经蒸发...
这种蛋白是大脑衰老的开关 这种蛋白是大脑衰老的开关 清晨,假设一位五十岁左右的王女士发现自己常常把手机放在熟悉的抽屉里又找不到...
信通院牵头算力Token出海生... 盘面上,截至11:04,中证科创创业50指数(931643)涨1.68%,创历史新高;权重股中,芯原...
海外 774 亿营收背后:日本... 文 | 游戏价值论 6月23日,彭博社报道了腾讯正在围绕出售多家日本游戏工作室少数股权开展谈判,包...
餐饮“抢人”大战:把店开到公交... 作者 |餐饮老板内参 内参君 医院、公交站、演唱会…餐饮品牌,正在无孔不入 在北京儿童医院,肯德基...
快讯 | 外资扫货!陈翊庭:港... 港交所行政总裁陈翊庭在接受《中国证券报》专访时指出,国际资本对中国资产的看法已彻底扭转,布局中国市场...
2777.77元!A股“股王”... 25日早盘,昨天创下历史新高的A股“股王”联讯仪器,今天上午继续走强,盘中股价再度刷新历史新高。 截...
原创 今... 欧洲自己的媒体直接下结论,欧盟衰退躲不掉,内部分裂拦不住,现在就连欧洲顶尖工业巨头,都偷偷在用中国的...
黄仁勋股东大会放言:本轮AI基... 在当地时间6月24日的英伟达(NVDA.O)2026年度股东大会上,股东批准了该公司全部10名董事会...
国际油价大跌 新华社消息, 纽约原油期货主力合约价格24日盘中跌破每桶70美元,为伊朗战事爆发以来首次。 市场分析...
马云带队插秧,什么信号? 一场别开生面的“务农”,让外界看到了一个不一样的阿里巴巴。 近日,阿里巴巴合伙人、高德董事长刘振飞在...
全球最大产能,最高丰度达99.... 本文转自【科技日报】; 6月23日,高丰度硼-10同位素技术暨产业化成果发布会在山东省东营市举办,全...
黄金大跳水!金饰克价年内暴跌近... 25日,现货黄金盘中震荡,截至发稿,报3985.070美元/盎司,跌0.17%。 当地时间24日,...