重制版 day 06 列表
列表是容器型数据类型,将[]作为容器的标志,里面多个元素用逗号隔开[元素1,元素2]
特点:列表是可变的,有序的
可变指的是容器的元素的个数和值,可变-支持增删查改
有序的指的是支持下标操作
元素的要求:没有要求,支持任意类型数据作为列表的元素,同一个列表中的元素可以不一样
# 列表中的元素可以是任何类型的数据
list2=[1,2.3,'sd',False,[1,2]]
# 列表是有序的
print([10,20,30]==[10,30,20]) # 列表是有序的 False
print({10, 20, 30}== {10, 30, 20}) # 集合是无序的 True
列表的查操作
下标
语法:
列表[下标]-获取指定列表中的指定下标对应元素
说明:
列表-需要获取元素的列表,可以是任何结果是列表的表达式,比如:保存列表的变量,具体的列表数据
[] - 固定写法
下标 - 索引,是列表中元素在列表中的位置信息
每一个元素都有2个索引值,一个从前到后取值,从0开始;一个从后到前取值,从-1开始.
下标不能越界,超出有效范围
切片
语法:
列表[开始下标:结束下标:步长] -根据下标和步长,获取指定列表中的部分元素
1)怎么确定切片结果
第一步:确定结果是否为空列表(看从开始下标到结束下标的方向,和步长方向是否一致),如果方向一致结果不一定为空.反之为空
步长为正:从前往后取
步长为负:从后往前取
第二步:确定有效范围 -开始下标对应的元素取得到,结束下标对应的元素取不到
第三步:在有效范围内,按照步长的绝对值获取内容;
如果绝对值为1,在等效范围内一个一个按顺序获取
如果绝对值为2,在等效范围内间隔2取一个
如果绝对值为3,在等效范围内间隔3取一个
2)怎么写切片
第一步:确定开始下标(目标对应的第一个元素的下标)
第二步:确定步长
确定正负号:看目标取值的方向,正向取正,负向取负
确定绝对值
第三步:确定结束下标
切片的省略写法:
列表[开始下标:结束下标:步长]
a.省略步长 -相当于步长为1
列表[开始下标:结束下标]
b.省略开始下标 - 表示从头开始,开始下标在第一个或者在最后一个,由步长的正负决定
列表[:结束下标:步长],列表[:结束下标]
c.省略结束下标 - 一直取到最后一个元素
列表[开始下标::步长]
遍历
遍历-一个一个的获取列表中的所有元素
len(列表)–获取列表中元素的个数
方法1:
for 变量 in 列表:
循环体
方法2:
通过遍历下标来遍历列表
for i in range(len(列表)):
获取到的是下标,通过下标进行后续操作,通过列表[下标]获取元素
方法3:同时获取下标和元素
for 变量1,变量2 in enumerate(列表):
变量1是下标,变量2是元素
# 练习1:计算nums中所有元素的和
nums = [12, 45, 8.34, 56, 23]
sum = 0
for i in nums:
sum+=i
print(sum)
# 运行结果 144.34
# 练习2:统计nums中所有偶数的个数
nums = [23, 88, 90, 88, 67, 55, 11]
count=0
for i in nums:
if i%2==0:
count+=1
print(count)
# 运行结果 3
# 练习3: 统计list1中字符串的个数
list1 = [109, 23.4, True, 'abc', 'helo', 23, '12', False, None]
count=0
for i in list1:
if type(i)==str:
count+=1
print(count)
# 运行结果 3
列表的增删改
增加 -添加元素
列表.append(元素)
–在列表的最后添加元素
列表.insert(下标,数据)
–在列表中指定位置插入指定元素
删除-删除元素
del 列表[下标]
—删除列表中的指定下标的元素
列表.remove(元素)
-删除列表中指定元素,如果元素不存在列表之中,报错;如果有多个需要删除的元素,只删除第一个
列表.pop()
-取出列表最后一个元素
列表.pop(下标)
-取出列表中指定下标对应的元素
改-修改元素
列表[下标]= 新元素
-将指定下标元素修改为新元素
# 案例:将scores中所有不及格的分数全部修改成"重修"
scores = [89, 23, 79, 99, 45, 60, 78, 59]
# [89, '重修', 79, 99, '重修', 60, 78, '重修']
for index, item in enumerate(scores):
if item < 60:
scores[index] = '重修'
print(scores)
列表的相关操作
1.数学运算符 :+,*
列表1+列表二 -将两个列表中的元素依次合并成一个新的列表
列表n / n列表 --重复n次列表中的元素
2.in操作
元素 in 列表 -判断列表是否存在指定元素
元素 not in 列表 -判断列表是否不存在指定元素