1.容器型数据类型(序列)
变量从是否是容器分为:非容器数据类型的变量和容器型数据类型的变量
非容器型数据类型的变量 - 一个盒子里面只有一个格子,所以同一时间只能保存一个数据,如int、float、bool、None
容器型数据类型的变量 - 一个盒子里面有多格子,每个格子可以存储不一样的数据,所以同一时间就可以保存多个数据,如list、dict、tuple、set、str
2.什么是列表(list)
列表是容器型数据类型;将[]作为容器标志,里面多个元素用逗号隔开:
[元素1,元素2,....]
列表是可变的(可变指的是元素的个数、值和顺序可变-支持增删改);
列表有序(支持下标操作)
列表中元素:任何类型的数据都可以作为列表的元素。(没有要求)
元素 - 指的是容器中每一个独立的数据
同一个列表中的元素可以是不同类型的元素
1.获取单个元素
语法:
列表[下标]
说明
列表 - 任何结果是列表的表达式,如:存列表的变量或者具体的列表的数据
[] - 固定写法
下标 - 下标(又叫索引)是有序序列中元素的位置信息,python中有序序列中元素的下标有两个种:
第一种:从前往后从0开始依次增加
第二种:从后前从-1卡开始依次减少
注意:下标不能越界
list1=[10,20,30,40]
2.切片 - 获取部分元素
语法1:
列表[开始下标:结束下标:步长]
开始下标到结束下标的方向如果和步长对应的方向一致,就可以取到数据
开始下标到结束下标的方向如果和步长对应的方向不一致,一定取不到数据
1)从开始下标到结束下标的方向如果和步长对应的方向(步长为正表示从前往后,步长为负表示从后往前)一致就可以获取到数据,否则就是空列表
2)确定有效范围:开始下标对应元素可以取到,结束下标对应的元素取不到,[开始下标:结束下标)
3)确定切片结果:在有效范围内按照步长绝对值取数据;绝对值为1就一个一个取,绝对值为2就跳一个取一个 语法2:省略步长
列表[开始下标:结束下标] - 步长为1
语法3:省略开始下标
列表[:结束下标:步长] / 列表[结束下标:]
如果步长为正,从第一个元素开始往后取;如果步长为负,就从最后一个元素从后往前取
语法4:省略结束下标
列表[开始下标::步长]/ 列表[开始下标:]
如果步长为正,从开始下标开始从前往后取取完为止:如果步长为负,从开始下标开始从后往前取取完为止 3.遍历 - 一个一个的全部取出来
方法一 - 直接获取元素
for 变量 in 列表:
循环体
变量依次获取的就是列表中的每个元素
方法二: - 通过获取每个元素的下标来获取元素
for 变量 in range(列表长度):
循环体
变量依次获取的时候列表中元素的下标
补充:len(列表) - 获取列表的长度
增删改
1.增 - 添加元素
1)列表.append(元素) - 将元素添加到列表的最后
2)列表.insert(下标:元素) - 将元素插入到指定下标前
nums=[12,23,56,78,99,120]
s=900
for x in range(len(nums)):
if s<nums[x]:
nums.insert(x,s)
break
else:
nums.append(s)
print(nums)
2.删 - 删除元素
1)
del 列表[下标] - 删除指定下标对应的元素
tvs=['海贼王','七龙珠','琅琊榜','甄嬛传','名侦探柯南','庆余年']
del tvs[1:3]
print(tvs)
2)
列表.remove(元素) - 删除指定元素
如果元素不存在会报错,如果元素有多个,只删最前面哪一个
tvs=['海贼王','七龙珠','琅琊榜','甄嬛传','名侦探柯南','庆余年']
tvs.remove('琅琊榜')
print(tvs)
3)
列表.pop() - 取出最后一个元素
列表.pop(下标) - 取出指定下标对应的元素
tvs=['海贼王','七龙珠','琅琊榜','甄嬛传','名侦探柯南','庆余年']
tvs.pop(1)
c=tvs.pop(1)
print(tvs,str(c))
3.改
列表[下标]=值
将列表中指定下标对应的元素改成指定的值
m=['肖申克的救赎','海上钢琴师','长津湖','罗小黑战记']
m[0]='假面骑士'
print(m)
1.in
元素 in 列表 - 判断列表中是否存在指定的元素
元素 not in 列表中 - 判断列表总是否不存在指定元素
print(10 in [10,20,30])