5、python_list(列表)
列表是python的基础数据类型之一,是以[]括起来,每个元素用','隔开。可以存放各种数据类型,列表相对于字符串,不仅可以存放不同的数据类型,还可以存放大量的数据,列表是有序的,有索引,可以切片以便于取值。
列表的常用操作:
1、列表的增删改查以及遍历(列表是一个可迭代的对象,所以可以使用for循环)
2、列表的嵌套
1、遍历列表
lst = ["舒克贝塔","黑猫警长","哪吒","葫芦娃"] for el in lst: print(el)
2、列表的索引和切片
索引
lst = ["张无忌","周芷若","杨逍","谢逊","赵敏"] print(lst[0]) #张无忌 print(lst[2]) #杨逍 print(lst[3]) #谢逊 lst[3] = "灭绝师太" #将谢逊替换为灭绝师太 print(lst) #['张无忌', '周芷若', '杨逍', '灭绝师太', '赵敏']
切片
lst = ["张无忌","周芷若","杨逍","谢逊","赵敏"] print(lst[0:3]) #['张无忌', '周芷若', '杨逍'] print(lst[:4]) #['张无忌', '周芷若', '杨逍', '谢逊'] print(lst[1::2]) #['周芷若', '谢逊'] print(lst[2::-1]) #['杨逍', '周芷若', '张无忌'] print(lst[-1:-3:-2]) #['赵敏']
3、列表的增删改查
增(append、insert、extend) lst = ["周润发","周杰伦","刘德华","郭富城","张学友"] print(lst) #['周润发', '周杰伦', '刘德华', '郭富城', '张学友'] lst.append("黎明") #append是默认附加至列表的尾部 print(lst) #['周润发', '周杰伦', '刘德华', '郭富城', '张学友', '黎明']
例如:
lst = []
while True:
content = input("请输入你要录入的员工信息,输入Q退出: ")
if content.upper() == "Q":
break
lst.append(content)
print(lst)
lst = ["周润发","周杰伦","刘德华","郭富城","张学友"] lst.insert(3,"周星驰") #在郭富城的前面插入周星驰 print(lst) #['周润发', '周杰伦', '刘德华', '周星驰', '郭富城', '张学友'] lst = ["周润发", "周杰伦", "刘德华", "郭富城", "张学友"] lst.extend(["黎志", "大华"]) #迭代添加 print(lst) #['周润发', '周杰伦', '刘德华', '郭富城', '张学友', '黎志', '大华']
删(pop、remove、clear、del)
#pop
lst = ["周润发","周杰伦","刘德华","郭富城","张学友"] print(lst) #['周润发', '周杰伦', '刘德华', '郭富城', '张学友'] deleted = lst.pop() #删除最后一个 print ("被删除的",deleted) #被删除的 张学友 print(lst) #['周润发', '周杰伦', '刘德华', '郭富城'] el = lst.pop(2) #将lst中的刘德华删除 print(lst) #['周润发', '周杰伦', '郭富城'] lst.remove("周润发") #指定元素删除 print(lst) #['周杰伦', '刘德华', '郭富城', '张学友'] lst.remove("haha") #删除不存在的元素会报错 print(lst) #ValueError: list.remove(x): x not in list
lst.clear() #清空列表 print(lst) #[] del lst[1:3] #切片删除(顾前不顾后,删除不到3的位置)将列表中的周杰伦和刘德华删除 print(lst) #['周润发', '郭富城', '张学友']
改
#索引切片修改
lst = ["周润发","周杰伦","刘德华","郭富城","张学友"] lst[1] = "东风破" #将周杰伦替换为东风破 print(lst) #['周润发', '东风破', '刘德华', '郭富城', '张学友']
查
#列表是一个可迭代的对象,所以可以使用for循环
lst = ["周润发","周杰伦","刘德华","郭富城","张学友"] for el in lst: print(el)
其他操作
lst = ["周润发", "周杰伦", "刘德华", "郭富城", "张学友"] print(len(lst)) #len是计算长度,同样适用字符串、列表、字典、元组 lst = ["周润发", "周杰伦", "刘德华", "郭富城", "张学友","周润发"] C = lst.count("周润发") #count是查询所查字符出现的次数 print(C) #2 lst = [1,3,5,2,4,8,11,7,55,23] lst.sort() #sort是排序,默认升序 print(lst) #[1, 2, 3, 4, 5, 7, 8, 11, 23, 55] lst.sort(reverse=True) #降序 print(lst) #[55, 23, 11, 8, 7, 5, 4, 3, 2, 1]
列表的嵌套
lst = [1,"太白","太黑",["可怜",["太可怜"],"王建玲"]] #找到太黑 print(lst[2]) lst = [1, "太白", "太黑", ["可怜", ["太可怜"], "wangjianling"]] #找到wangjianling然后将首字母改为大写 lst[3][2]=lst[3][2].capitalize() #将首字母转换为大写 print(lst) #[1, '太白', '太黑', ['可怜', ['太可怜'],'Wangjianling']] #将太白换为太黄 lst[1]=lst[1].replace("白","黄") #将白替换为黄 print(lst) #[1, '太黄', '太黑', ['可怜', ['太可怜'], 'Wangjianling']]
- 列表的函数&方法
len(list) 列表长度 list.append(obj) 在列表末尾添加新的对象,相当于其它语言里的push list.count(obj) 统计某个元素在列表中出现的次数 list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) list.index(obj) 从列表中找出某个值第一个匹配项的索引位置,索引从0开始 list.insert(index, obj) 将对象插入列表 list.pop(obj=list[-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 list.remove(obj) 移除列表中某个值的第一个匹配项 list.reverse() 反向列表中元素,倒转 list.sort([func]) 对原列表进行排序
- 循环删除列表中的每一个元素
s = [11, 22, 33, 44] for e in s: s.remove(e) print(s) #结果显示:[22, 44] 没有达到要求
原因分析:for的运行过程. 会有?个指针来记录当前循环的元素是哪?个, 一开始这个指针指向第0个. 然后获取到第0个元素. 紧接着删除第0个. 这个时候. 原来是第一个的元素会自动的变成第0个. 然后指针向后移动一次, 指向1元素. 这时原来的1已经变成了0, 也就不会被删除了.(列表在循环中不可以删除,因为会改变索引)
s = [11, 22, 33, 44] for i in range(0, len(s)): s.pop() print(s) #结果显示:[]