列表
一、内容概述
1、list增删改查 (列表可以装大量的数据,不限制数据类型,列表是有序的(按保存顺序),表示方式:[ ],方括号中的每一项都用逗号隔开,列表和字符串一样,也有索引和切片)
常用功能:
增:append()、insert()、extend()
删:remove()、pop()、del list[]、clear()
改:list[ 下标 ] = “ xxx ” #根据索引修改
查:for i in list: print(i) #根据for循环遍历查找
常用语法:
len() #计算长度
count() #计算次数
sort() #排序 ----> 降序:sort((reverse=True)
reverse() #反转
2、list嵌套
降维操作
3、tuple元组
不可变的列表,只读列表,只有索引和切片,不变的是它内部的元素,如果子元素是列表,列表中的元素可变
元组中如果只有⼀个元素. ⼀定要添加⼀个逗号, 否则就不是元组
元组也有count(), index(), len()等⽅方法.
4、range()
有一个参数:结束位置
有两个参数:起始位置:结束位置
有三个参数:起始位置:结束位置:步长
二、具体实例:
1、列表的索引和切片
(1)索引:
lis = ["张三","李四","王五","赵六"] prin(lis[0]) #获取第一个元素 prin(lis[1]) prin(lis[2])
(2)切片
lis = ["花千骨","白子画","杀阡陌","糖宝","儒尊","紫渊上仙"] print(lis[0:3]) print(lis[:3]) print(lis[1::2]) #从1取到末尾,每个一个取一个 print(lis[2::-1]) #倒着取值 print(lis[-1:-3:-3]) #倒着取值带步长
2、列表的增删改
(1)增:注意, list和str是不⼀样的. lst可以发⽣改变. 所以直接就在原来的对象上进行了操 作 append() insert() extend()
1. append() #默认在末尾添加
lis = ["花千骨","白子画","杀阡陌","糖宝","儒尊","紫渊上仙"]
print(lis)
lis.append("檀凡上仙")
例:输入信息
lst = []
while True:
count = input("请输入信息,结束请输入Q").strip()
if count.upper() == "Q"
brek
else:
lst.append(count)
print(lst)
2. insert()#根据索引添加
lis = ["花千骨","白子画","杀阡陌","糖宝","儒尊","紫渊上仙"]
lis.insert(1,"东方彧卿") #在1的位置添加
3.迭代添加
lis = ["花千骨","白子画","杀阡陌","糖宝","儒尊","紫渊上仙"]
lis.extend("东方彧卿","世尊","无垢上仙")
(2)、删:pop()、remove()、del 、clear()
lis = ["花千骨","白子画","杀阡陌","糖宝","儒尊","紫渊上仙"] print(lis) 1.pop() #根据下标删除,会返回删除的值,(默认删除最后一个) delt = lis.pop() #默认删除最后一个 print("被删除的元素",delt) print(dis) el = lis.pop(3) #根据下标删除 print(el) print(lis) 2.remove() #删除指定元素,如果不存在该元素会提示报错 lis.remove("儒尊") print() 3.clear() #清空列表 lis.clear() print(lis) 4.del list[:] #切片删除 del lis[2:4] print(lis)
3、改:索引切片修改
lis = ["花千骨","白子画","杀阡陌","糖宝","儒尊","紫渊上仙"] lis[4] = "世尊" #根据索引修改 print(lis) lis[1:4:2] = ["洪荒之力","生死劫"] #有步长注意元素个数 print(lis) lis[1:4] = "断念剑" #没有步长不用注意元素个数 print(lis)
4、查:for循环查询(列表是一个可迭代对象)
lis = ["花千骨","白子画","杀阡陌","糖宝","儒尊","紫渊上仙"] for el in lis: print(el)
5、常用操作
lis = ["花千骨","白子画","杀阡陌","糖宝","儒尊","紫渊上仙"] 1.count() #查询元素出现的次数 c = lis.count("花千骨") print(c) 2.sort() #排序 lis.sort() #默认升序 print(lis) ------------------------- 降序: lis.sort(reverse=True) print(lis) 3.reverse #反转 lis.reverse() print(lis) 4.len() #列表长度 l = lis.len(lis) print(l)
6、列表的嵌套 (降维操作)
lis = ["花千骨","白子画","杀阡陌","糖宝","儒尊","紫渊上仙","alex",["马虎疼",["可口可乐"],"王健林"]]
#找到白子画
print(lis[1])
#找到杀阡陌和糖宝
print(lis[2:4])
#找到花千骨的千字
print(lis[0][1])
#找到alex,将首字母大写,再放回去
s = lis[-1]
s1 = s.capitalize()
lis[-1] = s1
print(lis)
-----------------------------
lis[-1] = lis[-1].capitalize()
print(lis)
#把杀阡陌改成杀阡刀
lis[2] = lis[2].replace("陌","刀")
print(lis)
#把马虎疼改成马化腾
lis[-1][0] = lis[-1][0].replace("虎","化")
print(lis)
#在可口可乐后面加一个雪碧
lis[-1][1] = lis[-1][1].append("雪碧")
print(lis)
三、元组
1、元组和元组的嵌套 (元组:不可变的列表,只读,用小括号括起来,里面可以放任何类型的数据,可以查询、循环、切片,就是不能改。)
tu = ("花千骨","白子画","杀阡陌","糖宝","儒尊","紫渊上仙") print(tu) print(tu[0]) print(tu[2]) print(tu[2:5]) #切片之后还是元组 #for循环遍历元组 for el in tu: print(el) #尝试修改元组 tu[1] = "师尊" #报错:TypeError: 'tuple' object does not support item assignment tu = (1,"哈哈",[],"呵呵") tu[2] = ["嘻嘻"] #这样也不能修改,只能使用添加的方法 tu[2].append("张三") #找到元组的位置,在对列表进行添加,能达到修改的效果 print(tu) $:注意,这里的元组的不可变是指的子元素不可变。而子元素内部的子元素是可以改变的,这取决于子元素是否是可变对象 tu = (1,) print(type(tu)) #元组中如果只有一个元素,一定要添加一个逗号,否则就不是元组 #元组也有count()、index()、len()等方法
四、range() #range可以帮我们获取到一组数据。通过for循环能够获取到这些数据
for num in range(10): print(num) for num in range(1,10,2): print(num) for num in range(10,1,-2): #反着来,和切片一样 print(num)
浙公网安备 33010602011771号