python高阶(一)——列表学习
列表 list
列表是由一系列特定元素组成的,元素和元系之间没有任何关联关系,但他们之间有先后顺序关系
列表是一种容器 列表是序列的一种 列表是可以被改变的序列
# 创建空列表的字面值 L = [] # L绑定空列表 # 创建非空列表: L = [1, 2, 3, 4] L = ["北京", "上海", "重庆"] L = [1, 'two', 3, '四'] L = [1, 2, [3.1, 3.2, 3.3], 4]
列表的构造(创建)函数list
list() 生成一个空的列表 等同于[]
list(iterable) 用可迭代对象创建一个列表
L = list() L 为空列表,等同于 L = [] L = list("ABCD") # L->['A','B','C','D'] L = list(range(1, 10, 2))
列表的运算
算术运算
+ += * *=
+ 用于拼接列表
+=用于原列表与左侧可迭代对象进行拼接,生成新的列表
* 生成重复的列表
*= 用于生成重复的列表,同时用变量绑定新列表
x = [1,2,3] y = [4,5,6] z = x + y # z = [1,2,3,4,5,6] x = [1,2,3] x += [4,5,6] # x = [1,2,3,4,5,6] x = [1,2,3] x += 'ABC' # += 右侧必须是可迭代对象 x = [1,2,3] * 2 # x = [1,2,3,1,2,3] x = [1, 2] x *= 3 # x = [1,2,1,2,1,2]
列表的比较运算
运算符:< <= > >= == !=
x = [1,2,3] y = [2,3,4] x != y # True x > [1,2] # True x < y # True [1,3,2] > [1,2,3] # True ['AB', 'CD'] > ['AC', 'BD'] # False [1, 'two'] > ['two', 1] # TypeError
列表的 in / not in
1. 判断一个数据元素是否存在于容器(列表)内,如果存在返回True, 否则返回False
2. not in 的返回值与 in运算符相反
x = [1, 'Two', 3.14, '四'] 1 in x # True 2 in x # False 3 not in x # True '四' not in x # False
列表的 索引 index
列表的索引语句:列表[整数表达式]
用法:列表的索引取值与字符串的索引取值规则完全相同
列表的索引为分正向索引和反向索引
L = ['A', 2, 'B', 3] print(L[1]) # 2 x = L[2] # x = 'B'
列表的索引赋值:列表是可变的序列,可以通过索引赋值改变列表中的元素
语法:列表[索引] = 表达式
x = [1,2,3,4] x[2] = 3.14 # 改变了第三个元素的值
列表的切片 slice
列表的切片取值返回一个列表,规则等同于字符串的切片规则
x = list(range(9)) y = x[1:9:2] # y = [1,3,5,7]
列表的切片赋值语法:列表[切片] = 可迭代对象
说明:切片赋值的赋值运算符的右侧必须是一个可迭代对象
L = [2,3,4] L[0:1] = [1.1, 2.2] print(L) # [1.1, 2.2, 3, 4] L = [2,3,4] L[:] = [7,8] L = [2,3,4] L[1:2] = [3.1, 3.2, 3.3] # [2,3.1, 3.2, 3.3,4] L = [2,3,4] L[1:1] = [2.1, 2.2] # [2, 2.1, 2.2, 3, 4] L = [2,3,4] L[0:0] = [0, 1] # L=[0, 1, 2,3,4] L = [2,3,4] L[3:3] = [5,6] # L=[2,3,4, 5,6] L = [2,3,4] L[1:2] = [] # 切片步长不为1的切片赋值: L = list(range(1, 9)) L[1::2] = [2.2, 4.4, 6.6, 8.8] print(L) # # 切片注意事项: # 对于步长不等于1的切片赋值,赋值运算符的右侧的可迭代对象提供元素的个数一定要等# 于切片切出的段数 L = [1,2,3,4,5,6] L[::2] = 'ABCD' # 错的 L[::2] = 'ABC' # 对的
del 语句用于删除列表元素
del 列表[索引]
del 列表[切片]
L = [1,2,3,4,5,6] del L[0] # L = [2,3,4,5,6] del L[-1] # L = [2,3,4,5] L = [1,2,3,4,5,6] del L[::2] # L = [2, 4, 6]
列表推导式 list comprehension
列表推导式是用可迭代对象依次生成带有多个元素的列表的表达式
作用:用简易方法生成列表
语法:[表达式 for 变量 in 可迭代对象] 或 [表达式 for 变量 in 可迭代对象 if 真值表达式]
# 以下生成一个数值为1~9的平方的列表 L = [x*x for x in range(1, 10)]
# 练习: # 用列表推导式生成 1~100内的奇数的列表 # 结果 [1,3,5,7,.... 99] L = [x for x in range(1, 100, 2)] print(L) # 以上练习可以改写为: L = [x for x in range(1,100) if x % 2 == 1]
列表推导式的嵌套
语法:[ 表达式1 for 变量1 in 可迭代对象1 if 真值表达式1 for 变量2 in 可迭代对象2 if 真值表达式2 ...]
L1 = [2, 3, 5] L2 = [7, 11, 13] # 将L1中的全部元素与L2中的全部元素依次相乘后放到列表L3中 L3 = [x * y for x in L1 for y in L2] print(L3)
列表的常用方法(其中自建函数跟字符串的差不多)
如需转载
请联系作者:qq:3336987685
微信:LeoLRH