列表的介绍和操作
问题
为什么会使用容器行数据??
变量 : 变化的数据
在编程中的操作,定义一个标识符,记录变化的数据
有些时候需要记录数据的变化,将变化的数据都保存起来,就需要容器型数据来进行存储
列表list:
可变的有序性容器
可变:数据的值可以发生变化,可以修改、怎加、删除
有序:容器存储数据的时候,容器中有多少个数据。会给数据设置编号,编号是从0开始的【从左边开始】
可以通过编号定位获取这个位置的数据,也可以修改
这个编号被称为下标/索引
数据在进行定义的时候,数据标识符是[],在[]中定义多个数据,数据之间使用逗号分隔
比如:[19,20,22,33]
数据的编号为 0 1 2 3
num_list1=[]
1.获取列表中元素个数
len(数据/变量名)
例如
num_list2=[19,20,22,33]
print(len(num_list2))
2.下标
下标:数据的一个编号,可通过这个编号获取或修改数据
一般的编程语言中,编号就是从左向右,从0开始,加1递增
Python对于下标有两种表达形式:
1.正向索引——————从左向右
0,1,2,3.....len(数据)-1
2.负向索引——————从右向左
-1,-2,-3....-len(数据)
获取数据的时候可以使用正向索引也可以使用负向索引
格式:
列表数据[下标]====>代表的就是获取这个位置的数据
数据列表[下标]=数据值 ====>修改这个位置的数据
注意:
下标不能超过编号的界限,否则报错
例如
num_list2=[19,20,22,33]
print(num_list2[2])
print(num_list2[-2])
num_list2[2]=55
print(num_list2)
3.切片
切片:提取子序列
本质上根据下标定位到容器相应的位置,从指定的其实位置按照步长提取数据元素
格式:
例表数据[起始下标:结束下标:步长]
步长为正,代表的是正向切片【根据位置从左向右按照步长取值】
注意:其实下标定位的位置要在结束下标定位的位置的左边
步长为负,代表负向切片【根据位置从哪个右向左按照步长取值】
注意:起始下标定位的位置 要在 结束下标定位的位置 的右边
解读:
1):步长可以省略,步长默认为1
列表数据[起始下标:结束下标]
代表从起始下标对应的元素开始 逐个取值 到结束下标对应的位置[结束下标不包含]
2) 起始下标可以省略
看步长为正还是为负
步长为正 代表从最左边开始
步长为负 代表从最右边开始
3) 结束下标也可以省略
看步长为正还是为负
步长为正 代表到最右边结束
步长为负 代表到最左边结束
例如
scores = [76, 28, 39, 45, 57, 82, 91, 68]
sub_scores = scores[1:7:1]
print(sub_scores)
sub_scores = scores[1:7]
print(sub_scores)
sub_scores = scores[1:-1]
print(sub_scores)
sub_scores = scores[:3]
print(sub_scores)
sub_scores = scores[-3:]
print(sub_scores)
sub_scores = scores[::-1]
print(sub_scores)
sub_scores = scores[::2]
print(sub_scores)
4.增加数据的操作
增加数据的操作
1.例表数据.append(数据) 把数据追加到列表末尾
2.列表数据.insert(指定数据,数据) 在指定位置添加数据,原位置及其之后的数据都往后移动一位
例如
num_list3=['语文','数学','英语','体育']
num_list3.append('Python')
print(num_list3)
num_list3.insert(1, '政治')
print(num_list3)
5.删除数据的列表
删除数据的列表
1.数据列表.remove(数据) 将数据在列表中移除,如果数据有多个,只移除出现的第一个
2.列表数据.pop() 将列表中最后一个元素移除
3.列表数据.pop(位置) 将列表中指定位置的元素移除
4.列表数据.clear() 清空列表
例如
num_list3.remove('英语')
print(num_list3)
num_list3.pop()
print(num_list3)
num_list3.pop(0)
print(num_list3)
num_list3.clear()
print(num_list3)