接上篇《11、字符串高级应用》
上两篇我们完善了字符串的学习,了解字符串的高级应用。本篇我们来学习有关列表的高级应用操作(列表的增删改查)。
在我们使用list列表的过程中,常常需要对list进行处理,诸如插入新的元素、删除某个元素、修改某个元素、查找匹配的某个元素值等,这些操作都需要使用python内置的对列表进行逻辑操作的函数来完成,这部分内容就是list列表的高级应用。
下面我们通过实例及应用场景来为大家介绍列表高级应用中使用到的函数。
在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就是两个列表前后拼接在一起的新列表。
我们是通过指定下标来访问列表元素,因此改变元素的时候,为指定的下标赋值即可,例如:
#列表的修改
A = ['张三','李四','王五']print(f"----添加之前,列表A的数据----A={A}")#修改元素
#可以通过下标来修改,注意列表中的下标是从0开始的
A[1]="赵六"print(f'----添加之后,列表A的数据----A={A}')
效果:
----添加之前,列表A的数据----A=['张三', '李四', '王五']
----添加之后,列表A的数据----A=['张三', '赵六', '王五']
所谓的查找,就是看看指定的元素是否存在,以及查看元素所在的位置,主要包含以下几种方法:
(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
类比现实生活中,如果某位同学调班了,那么就应该把这个转班后的同学姓名删除掉;在开发过程中经常用到删除这种功能。
删除列表元素的常用方法有:
● 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=['小时代', '哈利波特', '三国演义']
(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
上一篇:STM32学习(四)
下一篇:【微前端】qiankun