容器:列表、字典、元祖、字符串
列表
1、列表:列表是容器型数据类型,将[]作为容器的标志,里面的多个元素用逗号隔开
2、列表是可变的(可变指的是容器中元素的个数和值是可变的——支持增,删,改),列表是有序的(支持下标操作)
3)、元素的要求:任何类型的数据都可以作为列表的元素,同一个列表中元素的类型还可以不一样
score = [86,52,89,78,94,99,68,92,94,83,76,80,75,86,98,100]
print(sum(score)) # 求列表和
print(len(score)) #求列表长度
print(max(score)) #求列表最大值(求列表最小值)
空列表
list = []
列表中元素可以是任意类型
list = [12,14,5.2,"acvf"]
列表是有序的
print([10,20,30] == [30,10,20]) # False
-
查单个元素
语法:列表[下标] :获取指定下标对应的元素
下标:也叫索引,是列表中位置信息,列表中每个值都有两个索引值,一个从0(第一个)不断往后增加,一个从-1(倒数第一个开始)
score = [86,52,89,78,94,99,68,92,94,83,76,80,75,86,98,100] score = [86,52,89,78,94,99,68,92,94,83,76,80,75,86,98,100] print(score[5]) print(score[-1])
-
切片
语法: 列表[开始下标:结束下标:步长]
第一步:确定结果是否为空列表(从开始下标到结束下标的方向和步长对应的方式是否一致,如果方向一致一定不为空,反之结果肯定为空)
步长为正:表示从前往后走
步长为负:表示从后往前取
第二步:确定范围:左闭右开,按照步长的绝对值获取元素
score = [86,52,89,78,94,99,68,92,94,83,76,80,75,86,98,100] print(score[1:10:2]) print(score[-1:4:1]) #为空 print(score[0:5:-2]) #为空
怎么写切片:1)确定开始下标;2):确定结束位置(左闭右开);3)确定方向
-
切片的省略写法:
语法:列表[开始下标:结束下标] print(score[3:7]) 默认步长是1 ;省略开始下标:表示从头开始(看步长的正负,开始下标在第一个或者最后一个)
score = [86,52,89,78,94,99,68,92,83,76,80,75,86,98,100] print(score[::]) #取出整个列表 print(score[::-1]) #逆序取出列表
-
遍历:一个一个的获取列表中的说以元素
语法:for i in 列表:
循环体
下标遍历:
score = [86,52,89,78,94,99,68,92,83,76,80,75,86,98,100]
for index in range(len(score)):
print(index,score[index])
同时获取下标和元素 :
语法:for 变量1 ,变量 2 in enumerate(列表):
循环体
score = [86,52,89,78,94,99,68,92,83,76,80,75,86,98,100]
for index, item in enumerate(score):
print(index , score[index])
列表增,删,改
-
增: 增加元素
append(元素) ——在列表的最后增加元素
insert(元素)——在指定位置添加元素
extend(列表) ——以列表为元素添加
score = [68,92,83,75,98,100] score.append(99) #在列表最后面添加一个元素 score.insert(4,888) #insert(插入的位置,插入的数据) ls = [103,23.4,True,"avd","hello",13,"123",False,None] print(score) score = [68,92,83,75,98,100] ls = [103,23.4,True,"avd","hello",13,"123",False,None] score.extend(ls) print(score)
-
删除
del 列表[下标]
score = [68,92,83,75,98,100] del score[0] print(score)
列表.remove(元素) —— 删除指定元素(被删除的元素不存在就会报错);如果被 删除的指定元素有多个,他只会删除第一个。
列表.pop() ——取出列表的最后一个元素并且返回
score = [68,92,83,75,98,100,10,100]
a = score.pop() #取出最后一个元素并且返回
print(score,a)
列表.pop(下标) ——取出列表指定下标的元素(不是真正意义上的删除,不从内存中删除)
改:列表[下标] = 新的元素
score = [68,92,83,75,98,100,10,100]
score[4] = True
print(score)
结果:
[68, 92, 83, 75, True, 100, 10, 100]
#练习:将60分以下的分数改为重修
score = [68,92,50,75,59,100,10,100]
for index,item in enumerate(score):
if item <= 60:
score[index] = "重修"
print(score)
列表相加:将两个列表合并成为一个列表
ls = [1,2,3,46,85,64,8]
score = [68,92,50,75,59,100,10,100]
print(score+ls)
列表 * N 或者N * 列表 ——列表中的元素重复N变产生一个新的列表
ls = [1,2,3,46,85,64,8]* 2
print(ls)
in 判断一个元素是否在指定列表中
ls = [1,2,3,46,85,64,8]* 2
print(10 in ls)
print([1,2,3] in ls)
print(1 in ls)
False
False
True