关于List的一些记录
python的官方文档
list 是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置。list是一个可变的数据存储结构
创建方法
list的创建方式主要有三种
- 直接创建
- 构造函数创建
- 推导式创建
# 直接创建方式
L = []
L = [1,2,3,4]
L = ['beijing','shanghai','shengzhen','hangzhou']
L = [1,'Two',3.14,'四']
L = [1,2,[3.1,3.2,3.3],4] #列表嵌套
# 直接创建方式
#list() 生成一个空的列表,等同于[]
#list(iterable) 用可迭代对象创建一个列表
L = list() #创建空列表
L = list("hello") #利用可迭代对象创建列表['h','e','l','l','o']
L = list(range(1,10,2)) #利用可迭代对象创建[1,3,5,7,9 ]
#列表推到式创建 list comprehension
#列表推导式是用可迭代对象依次生成带有多个元素的列表的表达式
#作用:
#用简易方法生成列表
#语法:
#[表达式 for 变量 in 可迭代对象]
#或
#[表达式 for 变量 in 可迭代对象 if 真值表达式]
#实例:
#生成一个列表,此列表内得到数值是1~9的平方
L = [x**2 for x in range(1,10)]
列表推导式的嵌套
语法:
[表达式
for 变量1 in 可迭代对象1 if 真值表达式1
for 变量2 in 可迭代对象2 if 真值表达式2
...]
实例:
用字符串"ABC"和"123"生成如下列表:
['A1','A2','A3','B1','B2','B3','C1','C2','C3']
L = [x + y for x in "ABC" for y in "123"]
注:列表推导式的嵌套与循环语句的嵌套规则相同,
列表的索引操作
语法:list[整数表达式]
说明:list可以通过索引下表进行赋值,访问等操作,与C语言中数组按照下标访问一样
实例:
L = list("ABCD")
print(L[1]) #B
注意:python中list支持正索引也支持负索引,
list[-1]表示最后一个数
list[0] 表示第一个数
列表的切片操作
语法:
list[:]
list[::]
说明:列表的切片取值返回一个列表,规则等同于字符串切片规则
实例:
x = list(range(10))
y = x[1:9:2] #奇数
注:切片实现列表的deep复制。
列表的切片赋值
语法:
list[切片slice] = 可迭代对象
作用:可改变原列表的排序,可插入数据和修改数据,可以用切片改变列表对应的元素值
说明:切片赋值的运算的右侧必须是一个可迭代带对象
实例:
L = [2,3,4]
L[1:2] = [3.1,3.2]
L[:1] = [1.1,2.2]
L = list(range(1,7))
L[1::2] = ‘ABC’ #从1开始,步长为2切片填充
L[::2] = 'ABCDE' #错误
规则:
对于步长不等1的切片赋值,赋值运算的右侧的可迭代对象提供的数据元素的个数
一定要等于切片切出的段数
字符串文本解析方法split&join
本章和list没什么关系,就是想起来加在这里了
S.split(sep = None):将字符串使用sep作为分隔符,分割S,返回分割后的字符串列表,
不给定参数时默认用空白字符(\n \t \r 等)作为分隔符
作为分隔符的字符会被删除
S.join(iterable):用可迭代对象提供的字符串,返回一个中间用S进行分隔的字符串
实例:
s = 'beijing is capital'
L = s.split(' ')
L = ["C","Windows","System32"]
s = '\\'.join(L) #s = C:\Windows\System32