列表和元组都属于序列,序列支持索引,分片和合并等操作,字符串属于特殊的不可变序列
列表的基本特点和操作
常用方括号表示,例:[1,2,'abc']
列表可以包含任意类型的对象:数字,字符串,列表,元组或其他对象
列表是个有序序列
列表可变,可添加或删除,列表的元素值也可以改变
每个列表元素存储的是对象的引用,不是对象本身
1,创建列表
(1)[]
(2)list('abcd') ---------> ['a','b','c','d']
(3)list(range(-2,3)) --> [-2,-1,0,1,2,3]
(4)list((1,2,3)) --------> [1,2,3]
(5)[x+10 for x in range(5) ----> [10,11,12,13,14]
2,基本操作符
len()求长度
+ 合并
* 重复 [1,2]*3 --------> [1,2,1,2,1,2]
迭代 for a in x:print(a)
in 判断是否包含
索引 x[0]表示列表第一个数据 x[-1]为从末尾开始索引
3,分片
x[st:ed:step] 为st---ed-1
st省略 从第一个开始
ed省略 到最后一个
step默认为1
可以通过分片替换数据
例:
x=list((range(10))
x[2:5]=[10,20]
[0,1,10,20,5,6,7,8,9]
4,常用列表方法
append()添加单个数据
extend()添加多个数据 用字符串作参数时,分解逐个字符
insert(position,x)在指定位置插入元素
例:x=[1,2,3]
x.insert(1,'abc') ----------> [1,'abc',2,3]
remove() 删除列表指定值,若有重复元素则删除第一个
pop(position) 无参数时删除并返回最后一个,有参数时返回偏移量为position的值并删除
无效值时报错
del x[st:ed] del x[pos] 删除指定位置
clear() 删除所有元素
copy()复制列表对象
5,列表排序
sort() 对同一类型排序,若包含多种类型,则会出错
默认从小到大排序
x.sort(reverse=True) 从大到小
reverse()列表反转
自定义排序
1 import functools 2 x=[3,4,1,2] 3 def fzy(x,y): 4 return y-x 5 x.sort(key=functools.cmp_to_key(fzy)) 6 print(x)
返回负数时前者优先,否则后者