一. 列表
1. 列表的作用:
在程序中需要同时处理多个数据,这些数据用列表进行储存和处理比直接用多个变量更加简单。
2.列表的定义:
- 列表是python自带的一种容器型数据类型。将[ ]作为标志,里面用多个逗号隔开:
[数据1,数据2,....... ]
- 列表是可变的 (可变是指列表中的元素个数和值是可以变化的-) 支持增删改
- 列表是有序的(其顺序影响结果,支持索引操作)
- 列表对元素(容器中每一个独立的数据)的要求:没有要求,而且同一个列表中的元素类型可以不一样。
list = [10, 1.23, 'abc', [10,20]]
3.空列表
list[]
4. 列表中的个数
list = [
10,
[20,30],
[40,50]
]
# 这个列表中有3个元素
5.获取列表中的元素(查)
1 .查单个: 一次获取列表中的某一个元素
列表[ ] : 列表可以是具体的某一个列表,也可以是一个保存列表的变量
[ ]: 固定写法
索引: 列表中元素的位置信息,从0开始
# 索引 -3 -2 -1
num = [12 , 34 , 45 , 54, 64 ]
#索引 0 1 2 3 4
games = ['英雄联盟', '王者荣耀', '原神', '和平精英', '穿越火线', 'QQ农场']
nums = [89, 672, 90, 12, 4]
print(games[-5])
print(games[1])
对应的都是 王者荣耀
2. 切片:
- 定义: 获取列表中的部分元素(列表切片的结果是小列表)
语法:
列表 [ 开始下标:结束下标:步长 ]
3. 如何看待切片的结果
- 第一步:看结果是否为空列表, 看从开始下标到结束下标的方向和步长对应方向是否一致(步长为正表示从前往后取,步长为负表示从后往前取)
games = ['英雄联盟', '王者荣耀', '原神', '和平精英', '穿越火线', 'QQ农场']
print(games[-1:2:-2]) #开始-1 结束2,从qq农场到元神, 步长为-2 ,从后往前。方向一致,不为空。
- 第二步: 确定有效范围。 开始下标对应元素能取到,结束下标对应元素取不到
- 第三步: 按照步长在有效范围内获取元素
6.切片代码的书写
- 第一步:确定开始下标 - 就是目标数据中的第一个数据在列表中的索引值
- 第二步:确定结束下标- 目标数据中的最后一个数据在列表中对应的后面那个元素(方向是从前往后取)或者前面那个元素(从后往前取)的下标。
- 第三步: 确定步长的值
7.切片的省略写法: 完整的: 列表[ 开始下标:结束下标:步长]
- 省略步长: 列表[开始下标:结束下标] 省略步长就是步长为1
- 省略开始下标:列表 [ :结束下标:步长 ] 省略开始下标,获取元素的时候就从头开始取,这个头可能是第一个元素,也可能是最后一个元素(看步长的对应方向)
- 省略结束下标: 列表[开始下标:: 步长]。 从开始下标开始直到取完为止
8. 遍历列表 (一个一个获取列表中所有元素)
- 方法1: 直接遍历列表
for 变量 in 列表:
循环体(变量依次获取到的就是列表中的每个元素)
games = ['英雄联盟', '王者荣耀', '原神', '和平精英', '穿越火线', 'QQ农场']
for i in games:
print(i)
打印列表中的每一个元素
- 方法2 :通过遍历列表中元素下标来遍历元素(len() 获取列表的长度,获取索引值)
games = ['英雄联盟', '王者荣耀', '原神', '和平精英', '穿越火线', 'QQ农场']
for i in range(len(games)):
print(games[i])
9. 列表的增删改
1. 增 :
- 往列表中添加元素
- 列表.append(数据) - 在指定列表的最后添加指定数据
tvs = ['甄嬛传', '绝命毒师','风骚律师','回家的诱惑', '琅琊榜','权力的游戏']
print(tvs)
tvs.append('庆余年')
print(tvs)
案例:写程序将nums中所有的元素都乘以2产生一个新的列表
nums = [90, 34, 55, 81, 30, 97, 76]
num = [90, 34, 55, 81, 30, 97, 76]
new_num = []
for i in num:
i *= 2
new_num.append(i)
print(new_num)
******************************************
num = [90, 34, 55, 81, 30, 97, 76]
new_num = []
for i in range(len(num)):
new_num.append(num[i] * 2)
print(new_num)
2. 增 列表.insert(下标,元素).
在列表中的指定下标对应的元素前插入指定元素
tvs = ['甄嬛传', '绝命毒师','风骚律师','回家的诱惑', '琅琊榜','权力的游戏']
tvs.insert(2,'庆余年')
print(tvs)
3. 删 :del 列表[下标] : 删除列表中指定下标对应的元素
- 删除列表汇总已经存在的元素
tvs = ['甄嬛传', '绝命毒师','风骚律师','回家的诱惑', '琅琊榜','权力的游戏']
del tvs[1]
print(tvs)
#删除绝命毒师
4. 删: 列表.remove(元素) -删除指定元素 (有多个相同元素,只会删除第一个)
tvs = ['甄嬛传', '绝命毒师','风骚律师','回家的诱惑', '琅琊榜','权力的游戏']
tvs.remove('绝命毒师')
print(tvs)
#删除绝命毒师
5. 删: pop()
- 列表.pop(): 取走列表中的最后一个元素,并且返回(是有结果的)
tvs = ['甄嬛传', '绝命毒师','风骚律师','回家的诱惑', '琅琊榜','权力的游戏']
tvs.pop()
print(tvs)
- 列表.pop(下标): 取走列表中指定下标对应的元素,并且返回
tvs = ['甄嬛传', '绝命毒师','风骚律师','回家的诱惑', '琅琊榜','权力的游戏']
tvs.pop(0)
print(tvs)
# 取走甄嬛传
6. 改
- 修改列表中元素的值
列表[下标] = '新数据'
tvs = ['甄嬛传', '绝命毒师','风骚律师','回家的诱惑', '琅琊榜','权力的游戏']
tvs[2] = '三国演义'
print(tvs)