列表中存放的数据是可以进行修改的,比如”增”、”删”、”改”、”查”
1. 添加元素(“增”append, extend, insert)
append
通过append可以向列表添加元素
demo:
#定义变量A,默认有3个元素A = ['xiaoWang','xiaoZhang','xiaoHua']print("-----添加之前,列表A的数据-----")for tempName in A:print(tempName)#提示、并添加元素temp = input('请输入要添加的学生姓名:')A.append(temp)print("-----添加之后,列表A的数据-----")for tempName in A:print(tempName)
结果:
extend
通过extend可以将另一个集合中的元素逐一添加到列表中
>>> a = [1, 2]>>> b = [3, 4]>>> a.append(b)>>> a[1, 2, [3, 4]]>>> a.extend(b)>>> a[1, 2, [3, 4], 3, 4]
insert
insert(index, object) 在指定位置index前插入元素object
如下是在索引1的位置插入一个元素3
>>> a = [0, 1, 2]>>> a.insert(1, 3)>>> a[0, 3, 1, 2]
2. 修改元素(“改”)
索引正
修改元素的时候,要通过下标来确定要修改的是哪个元素,然后才能进行修改
demo:
#定义变量A,默认有3个元素A = ['xiaoWang','xiaoZhang','xiaoHua']print("-----修改之前,列表A的数据-----")for tempName in A:print(tempName)#修改元素A[1] = 'xiaoLu'print("-----修改之后,列表A的数据-----")for tempName in A:print(tempName)
结果:
-----修改之前,列表A的数据-----xiaoWangxiaoZhangxiaoHua-----修改之后,列表A的数据-----xiaoWangxiaoLuxiaoHua
索引负
下标有正数下标,也有负数下标,如果想要修改最后一个元素,那么直接
A[-1]="new name"
切片修改
扩展:根据切片修改列表中的一部分数据
name_list=['A','B','C']name_list[0:3:2]=['D','E']print(name_list) # ['D', 'B', 'E']
3. 查找元素(“查”in, not in, index, count)
in, not in
python中查找的常用方法为:
- in(存在),如果存在那么结果为true,否则为false
- not in(不存在),如果不存在那么结果为true,否则false
demo: findName in nameList 返回值为True or False
#待查找的列表nameList = ['xiaoWang','xiaoZhang','xiaoHua']#获取用户要查找的名字findName = input('请输入要查找的姓名:')#查找是否存在if findName in nameList:print('在字典中找到了相同的名字')else:print('没有找到')
结果1:(找到)
请输入要查找的姓名:xiaoWang在字典中找到了相同的名字
结果2:(没有找到)
请输入要查找的姓名:xiaowang没有找到
说明:
in的方法只要会用了,那么not in也是同样的用法,只不过not in判断的是不存在
index, count
index和count与字符串中的用法相同
- index:表示查找指定数据 或 该数据在列表中的下标—-如果没查找到那么会报错 list.index(‘somedata’,0,2)
(要查找的数据,开始下标,结束下标-不包含)
count: 表示统计指定数据在列表中出现的次数—如果列表中不存在,那么返回0,并且不能指定范围了
>>> a = ['a', 'b', 'c', 'a', 'b']>>> a.index('a', 1, 3) # 注意是左闭右开区间Traceback (most recent call last):File "<stdin>", line 1, in <module>ValueError: 'a' is not in list>>> a.index('a', 1, 4)3>>> a.count('b')2>>> a.count('d')0
4.删除元素(del, pop, remove)
类比现实生活中,如果某位同学调班了,那么就应该把这个条走后的学生的姓名删除掉;在开发中经常会用到删除这种功能。
列表元素的常用删除方法有:del:根据下标进行删除
- pop:删除最后一个元素
- remove:根据元素的值进行删除
demo:(del)
movieName = ['加勒比海盗','骇客帝国','第一滴血','指环王','霍比特人','速度与激情']print('------删除之前------')for tempName in movieName:print(tempName)del movieName[2]print('------删除之后------')for tempName in movieName:print(tempName)
结果:
------删除之前------加勒比海盗骇客帝国第一滴血指环王霍比特人速度与激情------删除之后------加勒比海盗骇客帝国指环王霍比特人速度与激情
demo:(pop) 不指定下标默认删除最后一个。返回删掉的值。
movieName = ['加勒比海盗','骇客帝国','第一滴血','指环王','霍比特人','速度与激情']print('------删除之前------')for tempName in movieName:print(tempName)movieName.pop()print('------删除之后------')for tempName in movieName:print(tempName)
结果:
------删除之前------加勒比海盗骇客帝国第一滴血指环王霍比特人速度与激情------删除之后------加勒比海盗骇客帝国第一滴血指环王霍比特人
demo:(remove) 从列表中删除的数据必须要存在,如果不存在,那么会报错valueError,x not in list
movieName = ['加勒比海盗','骇客帝国','第一滴血','指环王','霍比特人','速度与激情']print('------删除之前------')for tempName in movieName:print(tempName)movieName.remove('指环王')print('------删除之后------')for tempName in movieName:print(tempName)
结果:
------删除之前------加勒比海盗骇客帝国第一滴血指环王霍比特人速度与激情------删除之后------加勒比海盗骇客帝国第一滴血霍比特人速度与激情
5. 排序(sort, reverse)和反转
- sort方法是将list按特定顺序重新排列,默认为由小到大,参数reverse=True可改为倒序,由大到小。
- reverse方法是将list逆置。
🔱 提示:排序后不需要使用变量保存,会直接改变使用sort方法的数组。
>>> a = [1, 4, 2, 3]>>> a[1, 4, 2, 3]>>> a.reverse()>>> a[3, 2, 4, 1]>>> a.sort()>>> a[1, 2, 3, 4]>>> a.sort(reverse=True)>>> a[4, 3, 2, 1]
