问题:当我们要用一系列数字的时候,我们需要将数字进行存储,我们就需要找个容器把数字装起来,我们需要用的时候再拿出来。如何将计算机运算的数据存储在一个地方,同时方便 对数据进行 增、删、改、查
列表
列表是一种容器
列表是可以被改变的序列容器
列表是一个可迭代对象
创建列表是为了存储数据
创建空列表语法:L = []
创建非空列表语法:L = [1,2,3]
L = [1,2,3,4]
L1 = [1,2,'liuwei']
L2 = ['北京','上海','广州','深圳']
列表可以存储任意数据类型的数据
列表的构造(创建)函数
list() #创建一个空的列表,等同于[]
list(iterable) #创建一个可迭代对象的列表,list(range(10))
列表的运算
算数运算符 + += * *=
例子:
x = [1,2,3]
y = [4,5,6]
z = x + y
print(z)
[1,2,3,4,5,6]
x+=y
[1,2,3,4,5,6]
列表的比较运算符
比较运算符 | 说明 |
---|---|
< | 运算符左右两侧列表内元素进行比较 |
<= | 运算符左右两侧列表内元素进行比较 |
== | 运算符左右两侧列表内元素进行比较 |
> | 运算符左右两侧列表内元素进行比较 |
>= | 运算符左右两侧列表内元素进行比较 |
!= | 运算符左右两侧列表内元素进行比较 |
in | 判断某个元素在不在列表中 |
not in | 判断某个元素是否不再列表中 |
列表的索引操作
索引取值的语法: x = 列表[整数表达式]
索引取值和切片取值跟字符串的取值的规则一样
列表的索引赋值
列表是可变的序列,可以通过索引赋值改变列表中的元素
语法:列表[整数表达式] = [表达式]
x = [1,2,3,4,5]
x[2] = 1+6
print(x)
[1,2,7,4]
x[1] = 5
print(x)
[1,5,7,4]
列表的切片操作
切片取值
语法:列表[起始索引:终止索引:步长]
列表的切片取值是从原列表中取出想要的元素,再次组成一个新的列表,这就说明原列表不变,只是复制了原列表中的内容
例子:
L = [1,2,3,4,5]
Y = [1:5:2]
[2,4]
切片赋值
语法:列表[切片] = 可迭代对象
作用:可以改变愿列表的排列,可以插入和修改数据
说明:切片赋值的赋值运算符(=)的右侧必须是可迭代对象
例子:
L = [1,2,3,4,5]
L[0:1] = [1.1,2.2]
[1.1,2.2,3,4,5]
注:用切片可以实现列表的全部修改操作
对于步长不等于1的切片赋值,赋值运算符的右侧的可迭代对象提供的元素个数,一定要等于切片切除的段数
python3中常用于序列的函数
len(x) | 返回序列的长度 |
---|---|
max(x) | 返回序列的最大值 |
min(x) | 返回序列的最小值 |
sum(x) | 返回序列中所有元素的和(元素必须为数字类型) |
any(x) | 真值测试,如果列表中的一个值为真值则返回True |
all(x) | 真值测试,如果列表中的所有值为真值则返回True |
Python3中常用的列表方法(method)
- 见:help(list)
方法 | 意义 |
---|---|
L.index(v [, begin[, end]]) | 返回对应元素的索引下标, begin为开始索引,end为结束索引,当 value 不存在时触发ValueError错误 |
L.insert(index, obj) | 将某个元素插放到列表中指定的位置 |
L.count(x) | 返回列表中元素的个数 |
L.remove(x) | 从列表中删除第一次出现在列表中的值 |
L.copy() | 复制此列表(只复制一层,不会复制深层对象) |
L.append(x) | 向列表中追加单个元素 |
L.extend(lst) | 向列表追加另一个列表 |
L.clear() | 清空列表,等同于 L[:] = [] |
L.sort(reverse=False) | 将列表中的元素进行排序,默认顺序按值的小到大的顺序排列 |
L.reverse() | 列表的反转,用来改变原列表的先后顺序 |
L.pop([index]) | 删除索引对应的元素,如果不加索引,默认删除最后元素,同时返回删除元素的引用关系 |