Day4
重点
列表
1.什么是列表(list)
1.列表是Python提供的容器型数据类型(可以同时保存多个数据);
将中括号[ ]作为容器的标志,里面多个元素用逗号隔开:[ ]
2.列表是可变的(元素的个数和值可变);列表是有序的(支持下标操作)
3.元素:任何类型的数据都可以作为列表的元素
说明:
容器型数据 - 可以同时保存多个数据
元素 - 容器中的每个独立的数据
1)空列表
list1=[]
print(list1)
2)列表的元素
list3=[18,278,'asb',None,False]
list4=[10,[10,20]]
print(list3)
print(list4)
3)列表是有序的
print([10, 20] == [20, 10]) # False 证明列表是有序的
print({10, 20} == {20, 10}) # True因为集合是无序的则为True
2.列表的增删改查
1.查 - 获取列表中的元素
1)查单个 - 获取列表中的某一个元素
语法: 列表[下标]
说明: a.列表 - 可以是具体的一个列表,也可以是保存列表的变量
b.[ ] - 固定写法
c.下标 - 又叫索引;列表的下标指的是列表中的元素在列表中的位置信息。
第一种下标(通用的):元素从前往后对应的下标从0开始依次增加
第二种下标:元素从后往前对应的下标从-1开始依次减少
注意:下标不能越界
nums = [10, 29, 23]
print(nums[-1], nums[2]) #23 23
print(nums[0]) #10
print(nums[3]) #报错!因为下标越界了
2)遍历列表 - 一个一个的获取列表中的每个元素
语法1:
for 变量 in 列表:
循环体
'''案例 统计scores中不及格的分数'''
scores = [90, 34, 79, 99, 100, 77, 56, 67, 55]
count = 0
for x in scores:
if x < 60:
count += 1
print(count) #3
语法2:
for 变量 in range(len(列表)):
循环体(列表[变量])
补充:len(列表) - 获取列表中元素的个数(获取列表的长度)
#统计scores中不及格分数的个数
scores = [90, 34, 79, 99, 100, 77, 56, 67, 55]
count = 0
for x in scores:
if x < 60:
count += 1
print(count)
scores = [90, 34, 79, 99, 100, 77, 56, 67, 55]
for x in range(len(scores)):
print(x, scores[x])
2.改 - 修改元素的值
1)语法:列表[下标] = 新值 - 修改列表中指定下标对应的元素为指定的新值
nums = [10, 20, 30]
print(nums)
nums[0] = 23
print(nums) #[23,20,30]
2)列表的遍历
scores = [90, 34, 79, 99, 100, 77, 56, 67, 55]
for index in range(len(scores)):
y = scores[index]
if y < 60:
scores[index] = '重修'
print(scores) #[90,'重修','79','99,'100','77','重修','67','重修']
3.增 - 添加元素
1)列表.append(元素) - 在指定的最后添加指定的元素
heroes = ['王昭君', '猪八戒', '孙悟空', '后羿', '鲁班7号']
print(heroes) # ['王昭君', '猪八戒', '孙悟空', '后羿', '鲁班7号']
heroes.append('赵云')
print(heroes) # ['王昭君', '猪八戒', '孙悟空', '后羿', '鲁班7号', '赵云']
#提取scores中所有不及格的分数,产生一个新的列表
scores = [90, 34, 79, 99, 100, 77, 56, 67, 55]
new_scores = []
for y in scores:
if y < 60:
new_scores.append(y)
print(new_scores) #[34,56,55]
2)列表.insert(下标,元素) - 将元素插入到列表中指定下标对应的元素前
heros=['王昭君','猪八戒','孙悟空','后裔','鲁班7号']
print(heros) #['王昭君', '猪八戒', '孙悟空', '后裔', '鲁班7号']
heros.insert(1,'赵云')
print(heros) #['王昭君', '赵云', '猪八戒', '孙悟空', '后裔', '鲁班7号']
4.删 - 删除元素
1)del 列表[下标] - 删除列表中指定下标对应的元素
heros=['王昭君','猪八戒','孙悟空','后裔','鲁班7号']
print(heros)
del heros[1]
print(heros) ## ['王昭君', '孙悟空', '后羿', '鲁班7号']
2)列表.remove(元素) - 删除列表中第一个指定的元素 删除过后元素不存在了
heros=['王昭君','猪八戒','孙悟空','后裔','猪八戒','鲁班7号']
print(heros)
heros.remove('猪八戒')
print(heros) #只删除一个猪八戒
#heros.remove('赵云') #若删除不存在的元素 则会报错
3)列表.pop() - 取出列表中最后一个元素,并且返回(pop操作就是从列表中取走的数据)
列表.pop(下标) - 取出列表中指定下标元素
heros = ['王昭君', '猪八戒', '孙悟空', '后裔', '鲁班7号']
result1 = heros.pop()
print(result1) #取出列表中最后一个元素,鲁班7号
result2 = heros.pop(2)
print(heros, result2) #['王昭君', '猪八戒', '后裔'] 孙悟空
3.列表其他应用
1.列表的加法
列表1+列表2 - 将两个列表合并成一个新的列表
A=[10,20,30]
B=[100,200]
C=A+B
print(C) #[10,20,30,100,200]
2.列表的乘法
列表N、N列表 - 将列表重复N次产生一个新的列表
A=[10,20,30]
B=A*2
print(B) #[10,20,30,10,20,30]
3.in和not in
数据 in 列表 - 判断指定数据是否是列表中的元素
数据 not in 列表 - 判断指定数据是否不是列表中的元素
A = [10, 20, 30]
B = [1, 2, 3, 4, 5]
print(10 in A) #True
print(10 in B) #False
4.列表相关函数:sum、max、min、sorted
sum(列表) - 求列表中所有元素的和(列表中的元素必须全部是数字)
A = [10, 20, 30]
print(sum(A)) #60
max(列表) - 获取列表中的最大元素
min(列表) - 获取列表中的最小元素
sorted(列表) - 将列表中的元素升序排序(从大到小),产生一个新列表,不改变原列表
scores=[56,278,324,355,53,5,4,43]
new_scores=sorted(scores)
print(new_scores) #[355,324,278,56,53,43,5,4]
new_scores=sorted(scores,reverse=True)
print(new_scores) #[4,5,43,53,56,278,324,355]