列表
由一系列数据组成,数据和数据之间没有关系,
数据和数据之间有先后关系,
列表是序列中的一种。
列表是一个容器。
L=[] #创建一个空列表
type(L)
<class 'list'>
列表可以使用对应的构造函数生成
L= list()#创建一个空列表
L = list(interable) 使用可迭代对象创建一个列表
L = list("123456")
type(L)
<class 'list'>
L
['1', '2', '3', '4', '5', '6']
L = list(range(1,11,2))
L
[1, 3, 5, 7, 9]
L = list(range(2,11,2))
L
[2, 4, 6, 8, 10]
列表的运算:
- += * *=
+:用于拼接 拼接两个列表
+=:
*:生成重复列表
*=:
列表之间的比较:
对应列表哪位置之间进行比较(注意:必须同类型之间进行比较即对应位置上数据类型要一致)
成员判断:
判断某数据是否在列表当中
列表中对应的索引操作:
语法:
列表[表达式]
[1,2,3,4,5,6]
0 1 2 3 4 5
列表的索引赋值:
列表是可变的序列,使用缩阴改变列表中的数据。
l = [1,2,3,4]
l[1]=10
l
[1, 10, 3, 4]
列表的切片
列表[开始位置:结束为止:步长]
列表的切片赋值:
增加数据、改变数据、查找数据、删除数据
L = list(range(10))
L
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
L[::3]
[0, 3, 6, 9]
L[::3]=[0,0,0,0]
L
[0, 1, 2, 0, 4, 5, 0, 7, 8, 0]
切片赋值注意:
=号左边切出的数据个数限制了等号右边的数据个数
当步长为1时:
L=[1,2,3,4]
L[2:3]=[1.1,2.2,3.3,4.4]
L
[1, 2, 1.1, 2.2, 3.3, 4.4, 4]
L[0:0]=['a','b','c']
L
['a', 'b', 'c', 1, 2, 1.1, 2.2, 3.3, 4.4, 4]
当步长不为1时:
(切片赋值注意:
=号左边切出的数据个数限制了等号右边的数据个数)
L
[0, 1, 2, 3, 4]
L[1:3:2]=[2,4,5,6]
ValueError: attempt to assign sequence of size 4 to extended slice of size 1
一个空列表删除切片以后数据:
L
[0, 1, 2, 3, 4]
L[3:]=[]
L
[0, 1, 2]
使用del函数索引方式删除列表数据:
L
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
del L[7]
L
[0, 1, 2, 3, 4, 5, 6, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
del(L[::3])
L
[1, 2, 4, 5, 7, 8]
列表常用函数:
len(L) 列表长度
max(L) 求列表中最大值
min(L)
sum(L) L中所有元素求和(L中所有元素为数值类型)
all(L) 测试L列表中是否所有元素都为真
any(L) 测试列表中的元素有一个真则为真
LL
['1', '2', '3', '4', '5', '6']
>>> L = list(range(1,11,2))
>>> L
[1, 3, 5, 7, 9]
>>> L = list(range(2,11,2))
>>> L
[2, 4, 6, 8, 10]
列表的运算:
+ += * *=
+:用于拼接 拼接两个列表
+=:
*:生成重复列表
*=:
列表之间的比较:
对应列表哪位置之间进行比较(注意:必须同类型之间进行比较即对应位置上数据类型要一致)
成员判断:
判断某数据是否在列表当中
列表中对应的索引操作:
语法:
列表[表达式]
[1,2,3,4,5,6]
0 1 2 3 4 5
列表的索引赋值:
列表是可变的序列,使用缩阴改变列表中的数据。
>>> l = [1,2,3,4]
>>> l[1]=10
>>> l
[1, 10, 3, 4]
列表的切片
列表[开始位置:结束为止:步长]
列表的切片赋值:
增加数据、改变数据、查找数据、删除数据
>>> L = list(range(10))
>>> L
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> L[::3]
[0, 3, 6, 9]
>>> L[::3]=[0,0,0,0]
>>> L
[0, 1, 2, 0, 4, 5, 0, 7, 8, 0]
切片赋值注意:
=号左边切出的数据个数限制了等号右边的数据个数
当步长为1时:
>>> L=[1,2,3,4]
>>> L[2:3]=[1.1,2.2,3.3,4.4]
>>> L
[1, 2, 1.1, 2.2, 3.3, 4.4, 4]
>>> L[0:0]=['a','b','c']
>>> L
['a', 'b', 'c', 1, 2, 1.1, 2.2, 3.3, 4.4, 4]
当步长不为1时:
(切片赋值注意:
=号左边切出的数据个数限制了等号右边的数据个数)
>>> L
[0, 1, 2, 3, 4]
>>> L[1:3:2]=[2,4,5,6]
ValueError: attempt to assign sequence of size 4 to extended slice of size 1
一个空列表删除切片以后数据:
>>> L
[0, 1, 2, 3, 4]
>>> L[3:]=[]
>>> L
[0, 1, 2]
使用del函数索引方式删除列表数据:
>>> L
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> del L[7]
>>> L
[0, 1, 2, 3, 4, 5, 6, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> del(L[::3])
>>> L
[1, 2, 4, 5, 7, 8]
列表常用函数:
len(L) 列表长度
max(L) 求列表中最大值
min(L)
sum(L) L中所有元素求和(L中所有元素为数值类型)
all(L) 测试L列表中是否所有元素都为真
any(L) 测试列表中的元素有一个真则为真
>>> L
[0, 1, 2, 3, 4, 5, 6, 7, 8]
sum(L)
L = list(range(1,11,2))
>>> L
[1, 3, 5, 7, 9]
>>> L = list(range(2,11,2))
>>> L
[2, 4, 6, 8, 10]
列表的运算:
+ += * *=
+:用于拼接 拼接两个列表
+=:
*:生成重复列表
*=:
列表之间的比较:
对应列表哪位置之间进行比较(注意:必须同类型之间进行比较即对应位置上数据类型要一致)
成员判断:
判断某数据是否在列表当中
列表中对应的索引操作:
语法:
列表[表达式]
[1,2,3,4,5,6]
0 1 2 3 4 5
列表的索引赋值:
列表是可变的序列,使用缩阴改变列表中的数据。
>>> l = [1,2,3,4]
>>> l[1]=10
>>> l
[1, 10, 3, 4]
列表的切片
列表[开始位置:结束为止:步长]
列表的切片赋值:
增加数据、改变数据、查找数据、删除数据
>>> L = list(range(10))
>>> L
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> L[::3]
[0, 3, 6, 9]
>>> L[::3]=[0,0,0,0]
>>> L
[0, 1, 2, 0, 4, 5, 0, 7, 8, 0]
切片赋值注意:
=号左边切出的数据个数限制了等号右边的数据个数
当步长为1时:
>>> L=[1,2,3,4]
>>> L[2:3]=[1.1,2.2,3.3,4.4]
>>> L
[1, 2, 1.1, 2.2, 3.3, 4.4, 4]
>>> L[0:0]=['a','b','c']
>>> L
['a', 'b', 'c', 1, 2, 1.1, 2.2, 3.3, 4.4, 4]
当步长不为1时:
(切片赋值注意:
=号左边切出的数据个数限制了等号右边的数据个数)
>>> L
[0, 1, 2, 3, 4]
>>> L[1:3:2]=[2,4,5,6]
ValueError: attempt to assign sequence of size 4 to extended slice of size 1
一个空列表删除切片以后数据:
>>> L
[0, 1, 2, 3, 4]
>>> L[3:]=[]
>>> L
[0, 1, 2]
使用del函数索引方式删除列表数据:
>>> L
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> del L[7]
>>> L
[0, 1, 2, 3, 4, 5, 6, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> del(L[::3])
>>> L
[1, 2, 4, 5, 7, 8]
列表常用函数:
len(L) 列表长度
max(L) 求列表中最大值
min(L)
sum(L) L中所有元素求和(L中所有元素为数值类型)
all(L) 测试L列表中是否所有元素都为真
any(L) 测试列表中的元素有一个真则为真
>>> L
[0, 1, 2, 3, 4, 5, 6, 7, 8]
>>> sum(L)
36
max(L)
8
min(L)
L
[1, 3, 5, 7, 9]
>>> L = list(range(2,11,2))
>>> L
[2, 4, 6, 8, 10]
列表的运算:
+ += * *=
+:用于拼接 拼接两个列表
+=:
*:生成重复列表
*=:
列表之间的比较:
对应列表哪位置之间进行比较(注意:必须同类型之间进行比较即对应位置上数据类型要一致)
成员判断:
判断某数据是否在列表当中
列表中对应的索引操作:
语法:
列表[表达式]
[1,2,3,4,5,6]
0 1 2 3 4 5
列表的索引赋值:
列表是可变的序列,使用缩阴改变列表中的数据。
>>> l = [1,2,3,4]
>>> l[1]=10
>>> l
[1, 10, 3, 4]
列表的切片
列表[开始位置:结束为止:步长]
列表的切片赋值:
增加数据、改变数据、查找数据、删除数据
>>> L = list(range(10))
>>> L
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> L[::3]
[0, 3, 6, 9]
>>> L[::3]=[0,0,0,0]
>>> L
[0, 1, 2, 0, 4, 5, 0, 7, 8, 0]
切片赋值注意:
=号左边切出的数据个数限制了等号右边的数据个数
当步长为1时:
>>> L=[1,2,3,4]
>>> L[2:3]=[1.1,2.2,3.3,4.4]
>>> L
[1, 2, 1.1, 2.2, 3.3, 4.4, 4]
>>> L[0:0]=['a','b','c']
>>> L
['a', 'b', 'c', 1, 2, 1.1, 2.2, 3.3, 4.4, 4]
当步长不为1时:
(切片赋值注意:
=号左边切出的数据个数限制了等号右边的数据个数)
>>> L
[0, 1, 2, 3, 4]
>>> L[1:3:2]=[2,4,5,6]
ValueError: attempt to assign sequence of size 4 to extended slice of size 1
一个空列表删除切片以后数据:
>>> L
[0, 1, 2, 3, 4]
>>> L[3:]=[]
>>> L
[0, 1, 2]
使用del函数索引方式删除列表数据:
>>> L
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> del L[7]
>>> L
[0, 1, 2, 3, 4, 5, 6, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> del(L[::3])
>>> L
[1, 2, 4, 5, 7, 8]
列表常用函数:
len(L) 列表长度
max(L) 求列表中最大值
min(L)
sum(L) L中所有元素求和(L中所有元素为数值类型)
all(L) 测试L列表中是否所有元素都为真
any(L) 测试列表中的元素有一个真则为真
>>> L
[0, 1, 2, 3, 4, 5, 6, 7, 8]
>>> sum(L)
36
>>> max(L)
8
>>> min(L)
0
len(L)
9
all(L)
False
any(L)
True
常用的方法:
L.index(v,begin,end):查找v元素对应的索引下标
可以指定开始位置和结束位置
L
[1, 2, 3, 1, 2, 3, 1, 2, 3]
L.index(2)
1
L.index(2,3,7)
4
L.insert(index,V):在索引位置上插入V元素
L = [1,2,3]
L.insert(0,10)
L
[10, 1, 2, 3]
L = [1,2,3]
L[0:0]=[10]
L
[10, 1, 2, 3]
L.count(X):在L中X的个数
L
[10, 1, 2, 3, 10, 1, 2, 3, 10, 1, 2, 3, 10, 1, 2, 3, 10, 1, 2, 3, 10, 1, 2, 3]
L.count(6)
0
L.count(1)
6
L.remove(X):删除L中的X,如果L中有多个X则删除第一个
L
[10, 1, 2, 3, 10, 1, 2, 3, 10, 1, 2, 3, 10, 1, 2, 3, 10, 1, 2, 3, 10, 1, 2, 3]
L.remove(10)
L
[1, 2, 3, 10, 1, 2, 3, 10, 1, 2, 3, 10, 1, 2, 3, 10, 1, 2, 3, 10, 1, 2, 3]
L.count(10)
5
L.clear():清空列表
L = [1,2,3]
id(L)
4377489032
L.clear()
id(L)
L
[0, 1, 2, 3, 4]
>>> L[1:3:2]=[2,4,5,6]
ValueError: attempt to assign sequence of size 4 to extended slice of size 1
一个空列表删除切片以后数据:
>>> L
[0, 1, 2, 3, 4]
>>> L[3:]=[]
>>> L
[0, 1, 2]
使用del函数索引方式删除列表数据:
>>> L
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> del L[7]
>>> L
[0, 1, 2, 3, 4, 5, 6, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> del(L[::3])
>>> L
[1, 2, 4, 5, 7, 8]
列表常用函数:
len(L) 列表长度
max(L) 求列表中最大值
min(L)
sum(L) L中所有元素求和(L中所有元素为数值类型)
all(L) 测试L列表中是否所有元素都为真
any(L) 测试列表中的元素有一个真则为真
>>> L
[0, 1, 2, 3, 4, 5, 6, 7, 8]
>>> sum(L)
36
>>> max(L)
8
>>> min(L)
0
>>> len(L)
9
>>> all(L)
False
>>> any(L)
True
常用的方法:
L.index(v,begin,end):查找v元素对应的索引下标
可以指定开始位置和结束位置
>>> L
[1, 2, 3, 1, 2, 3, 1, 2, 3]
>>> L.index(2)
1
>>> L.index(2,3,7)
4
L.insert(index,V):在索引位置上插入V元素
>>> L = [1,2,3]
>>> L.insert(0,10)
>>> L
[10, 1, 2, 3]
>>> L = [1,2,3]
>>> L[0:0]=[10]
>>> L
[10, 1, 2, 3]
L.count(X):在L中X的个数
>>> L
[10, 1, 2, 3, 10, 1, 2, 3, 10, 1, 2, 3, 10, 1, 2, 3, 10, 1, 2, 3, 10, 1, 2, 3]
>>> L.count(6)
0
>>> L.count(1)
6
L.remove(X):删除L中的X,如果L中有多个X则删除第一个
>>> L
[10, 1, 2, 3, 10, 1, 2, 3, 10, 1, 2, 3, 10, 1, 2, 3, 10, 1, 2, 3, 10, 1, 2, 3]
>>> L.remove(10)
>>> L
[1, 2, 3, 10, 1, 2, 3, 10, 1, 2, 3, 10, 1, 2, 3, 10, 1, 2, 3, 10, 1, 2, 3]
>>> L.count(10)
5
L.clear():清空列表
>>> L = [1,2,3]
>>> id(L)
4377489032
>>> L.clear()
>>> id(L)
4377489032
L = [1,2,3]
id(L)
4377423688
L = []
id(L)
4377489032
L.copy():复制列表,只深拷贝其中的一层
深拷贝(克隆,不影响动作)和浅拷贝(我和我影子)
L = [1,2,3]
L1 = [10,20,30,L]
L1
[10, 20, 30, [1, 2, 3]]
L2 = L1.copy()
L2
[10, 20, 30, [1, 2, 3]]
L1[0]=100
L1
[100, 20, 30, [1, 2, 3]]
L2
[10, 20, 30, [1, 2, 3]]
L[0]
1
L[0]=100
L2
[10, 20, 30, [100, 2, 3]]
深拷贝:
import copy
copy.deepcopy(L)
L.append():向列表中添加元素
L.extend():向列表中添加元素
L=[1,2,3,4]
L.append([5,6,7,8])
L
[1, 2, 3, 4, [5, 6, 7, 8]]
L.extend([5,6,7,8])
L
min(L)
0
>>> len(L)
9
>>> all(L)
False
>>> any(L)
True
常用的方法:
L.index(v,begin,end):查找v元素对应的索引下标
可以指定开始位置和结束位置
>>> L
[1, 2, 3, 1, 2, 3, 1, 2, 3]
>>> L.index(2)
1
>>> L.index(2,3,7)
4
L.insert(index,V):在索引位置上插入V元素
>>> L = [1,2,3]
>>> L.insert(0,10)
>>> L
[10, 1, 2, 3]
>>> L = [1,2,3]
>>> L[0:0]=[10]
>>> L
[10, 1, 2, 3]
L.count(X):在L中X的个数
>>> L
[10, 1, 2, 3, 10, 1, 2, 3, 10, 1, 2, 3, 10, 1, 2, 3, 10, 1, 2, 3, 10, 1, 2, 3]
>>> L.count(6)
0
>>> L.count(1)
6
L.remove(X):删除L中的X,如果L中有多个X则删除第一个
>>> L
[10, 1, 2, 3, 10, 1, 2, 3, 10, 1, 2, 3, 10, 1, 2, 3, 10, 1, 2, 3, 10, 1, 2, 3]
>>> L.remove(10)
>>> L
[1, 2, 3, 10, 1, 2, 3, 10, 1, 2, 3, 10, 1, 2, 3, 10, 1, 2, 3, 10, 1, 2, 3]
>>> L.count(10)
5
L.clear():清空列表
>>> L = [1,2,3]
>>> id(L)
4377489032
>>> L.clear()
>>> id(L)
4377489032
>>> L = [1,2,3]
>>> id(L)
4377423688
>>> L = []
>>> id(L)
4377489032
L.copy():复制列表,只深拷贝其中的一层
深拷贝(克隆,不影响动作)和浅拷贝(我和我影子)
>>> L = [1,2,3]
>>> L1 = [10,20,30,L]
>>> L1
[10, 20, 30, [1, 2, 3]]
>>> L2 = L1.copy()
>>> L2
[10, 20, 30, [1, 2, 3]]
>>> L1[0]=100
>>> L1
[100, 20, 30, [1, 2, 3]]
>>> L2
[10, 20, 30, [1, 2, 3]]
>>> L[0]
1
>>> L[0]=100
>>> L2
[10, 20, 30, [100, 2, 3]]
深拷贝:
import copy
copy.deepcopy(L)
L.append():向列表中添加元素
L.extend():向列表中添加元素
>>> L=[1,2,3,4]
>>> L.append([5,6,7,8])
>>> L
[1, 2, 3, 4, [5, 6, 7, 8]]
>>> L.extend([5,6,7,8])
>>> L
[1, 2, 3, 4, [5, 6, 7, 8], 5, 6, 7, 8]
L.pop(index):删除对应的索引数据,默认删除的是最后一个数据
L
[1, 2, 3, 4, [5, 6, 7, 8], 6, 7, 8]
L.pop(1)
2
L
[1, 3, 4, [5, 6, 7, 8], 6, 7, 8]
L.pop()
8
L
[1, 3, 4, [5, 6, 7, 8], 6, 7]
L.pop(3)
[5, 6, 7, 8]
L.sort(reverse = False):默认按照升序排序 reverse=True按照降序排序