【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

相关内容

热门资讯

在大吉订购APP订购交易亏损被...   近期,不少投资者反映在“大吉订购App”上投资白银、铂金等商品遭遇严重亏损。该平台宣称提供现货订...
铂银壹号APP商品订购交易亏损...   许多中小投资者误以为网上的“商品现货订购”是合规合法的理财渠道,殊不知这背后隐藏着巨大的合规风险...
兴鑫淘金APP贵金属订购交易亏...   白银、贵金属或其他商品类投资,除国家批准的正规期货交易场所及持牌期货公司外,市面上大量第三方交易...
铂银掘金APP无资质的违规平台...   铂银掘金等平台的投资者,往往是被“注册送现金”“充值返现券”“首单免亏”等广告话术吸引,进而下载...
八方淘金APP订购交易不合规,...   “八方淘金APP”“铂银掘金APP”“铂银壹号APP”等软件被指以“现货订购”为名,实际采用高杠...
在指尖订购APP订购商品亏损被...   指尖订购APP这类平台,表面是“订购交易”,实则是披着电商外衣的非法期货陷阱。绝大多数投资者被蒙...
在犀贝易购APP做商品订购交易...   市面上打着“现货投资”“贵金属交易”旗号的APP并不少,但真正合规、受监管的平台并不多。犀贝易购...
易达淘金APP虚假商品订购交易...   易达淘金APP存在严重的虚假宣传与违规交易行为。该平台打着“商品订购”的旗号,实则通过不合规的交...
大浪淘金APP白银订购亏损被骗...   大浪淘金APP最隐蔽的套路,在于其完全封闭的内盘交易系统。表面上,它宣称与国际贵金属市场接轨;实...
一品好购APP上订购白银出现亏...   一品好购APP原名“一品订购”,运营方为上海宝智未来信息技术有限公司。近期不少投资者反映在该平台...
九州订购APP贵金属订购投资骗...   九州订购APP正通过抖.音、快手、今日头条等平台大量投放投资广告,用“5元起投”“充值返现”“0...
坚锅淘金APP交易软件并不正规...   当前,市面上大量所谓的“现货商城订购”交易软件,早已偏离了正常的实物商品买卖,演变为高杠杆、高手...
斗金订购APP贵金属期货交易骗...   斗金订购APP的投资者往往被铺天盖地的广告宣传所诱导——注册即送现金、充值返现券等看似诱人的福利...
警惕!云启购APP违规经营,披...   "5元起投、充值返现、稳赚不赔"——这些诱人的广告语背后,可能是一个精心设计的金融陷阱。  近期...
量子淘金APP贵金属投资不合规...   "4元起投""充值返券""月入过万"——这些极具诱惑力的广告语在短视频平台、社交软件上铺天盖地。...
鑫汇智投APP贵金属商品订购骗...   鑫汇智投APP非法期货投资骗局,受害者在投资过程中根本不懂交易,也不去研究和验证这个平台是否正规...
矅光智策APP平台违规经营非法...   矅光智策APP对外宣称是“商城订购”“现货交易”,但查询其经营范围,并未显示具备开展现货期货交易...
黄金珠宝怎么选?内侧刻字都代表... 潮新闻客户端 记者 马焱 通讯员 任倩影 9月8日下午,“云游杭州 乐购金秋”——“浙城·浙放心”活...
原创 冰... 最近全球国债市场正在上演魔幻一幕: 美债、日债、欧债遭遇猛烈抛售,收益率冲到几十年新高,美国财政部都...
日韩股市开盘表现分化 上证报中国证券网讯 9月9日,日韩股市开盘表现分化,韩国综合指数开盘上涨0.26%,报6972.87...