python序列结构之列表
1.列表的性质
- 列表是有序可变的序列结构
- 列表中所有的元素都在“[ ]”里
- 每个元素之间用“,”隔开
- 列表里的元素可以包含列表,元组,字典,集合,整数,实数,字符串以及其他任意对象。
2.列表创建与删除
- 创建&转换
#使用“=”将列表常量赋值给变量
list1=[1,'Happy',[4,5,6],(8,7)]
#使用list()将range对象转换为列表(从1到10,步长为2)
list2=list(range(1,10,2))
#使用list()将元组转换为列表
list3=list((3,6,9))
#使用list()将字符串转换为列表(其中每个字母都单独作为元素)
list4=list("Hello World")
#使用list()将字典的“键”转换为列表
list5=list({"a":1,"b":2,"c":3})
#使用list()将字典的元素转换为列表
list6=list({"a":1,"b":2,"c":3}.items())
#使用list()将集合转换为列表
list7=list({3,7,5})
#创建空列表
list8=list()
- 删除
#删除"list1"列表(列表对象删除后无法在访问)
del(list1)
3.列表元素访问
通过列表元素的下标访问
#列表的起始元素下标为0
>>>list1=[1,'Happy',[4,5,6],(8,7)]
>>>list1[2]
>>>[4, 5, 6]
4.列表的常用方法
- 添加元素
list1=[1,'Happy',[4,5,6],(8,7)]
#append('X')将X元素追加到列表尾部
list1.append('x')
list1
[1, 'Happy', [4, 5, 6], (8, 7), 'x']
#extend(list2)将list2列表全部元素追加到列表尾部
list2=list(range(1,10,2))
list1.extend(list2)
list1
[1, 'Happy', [4, 5, 6], (8, 7), 4, 'x', 1, 3, 5, 7, 9]
#insert(index,x)将x元素插入到index位置
list1.insert(3,9)
list1
[1, 'Happy', [4, 5, 6], 9, (8, 7), 4, 'x', 1, 3, 5, 7, 9]
- 删除元素
list1=[1,'Happy',[4,5,6],(8,7)]
#pop(index)删除index位置的元素,并返回删除的元素
list1.pop(2)
[4, 5, 6]
list1
[1, 'Happy', (8, 7)]
#remove()删除列表中第一个指定元素,如果没有则显示异常
list1.remove((8,7))
list1
[1, 'Happy']
#del指令删除指定下标元素
del list1[1]
list1
[1]
- 查看元素
list1=[1,'Happy',[4,5,6],(8,7)]
#count()返回元素在列表出现的次数
list1.count(1)
1
#index()返回元素首次出现在列表的下标,如果没有则显示异常
list1.index((8,7))
3
- 排列元素
list1=list(range(1,10))
from random import shuffle #从random模块中导入shuffle对象
shuffle(list1) #用shuffle打乱顺序
list1
[1, 4, 7, 6, 8, 9, 3, 5, 2]
#sort(key=None,reverse=Flase)按照指定规则对列表进行排列,默认为正序,即从小到大
list1.sort()
list1
[1, 2, 3, 4, 5, 6, 7, 8, 9]
#reverse()将元素翻转或逆序
list1.reverse()
list1
[9, 8, 7, 6, 5, 4, 3, 2, 1]
5.列表对象支持的运算符
- 算术运算符
list1=[1,2,3,4]
#加法运算符可以将两个列表连接得到一个新的列表
list1=list1+[5, 6]
list1
[1, 2, 3, 4, 5, 6]
#乘法运算符可以将列表和整数相乘,即重复列表,得到新的列表
list1=list1*2
list1
[1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6]
- 成员测试运算符
list1=[1,2,3,4]
#in运算符用于测试列表中是否包含某个元素
3 in list1
True
- 关系运算符
#关系运算符用来比较两个列表的大小(逐个比较对应位置的元素,直到某个元素能够比较出大小为止)
#>
[1,2,3]>[1,2,1,4]
True
#==
[1,2,3]==[1,2,1,4]
False
6.内置函数对列表的操作
list1=list(range(1,10))#生成一个1到9的整数列表,步长为1
list1
[1, 2, 3, 4, 5, 6, 7, 8, 9]
#max()返回列表中最大的值
max(list1)
9
#min()返回列表中最小的值
min(list1)
1
#sum()返回列表中所有元素的和
sum(list1)
45
#len()返回列表中的元素个数
len(list1)
9
#all()测试是否所有元素都等价于True,不为零就是True
all(list1)
True
#any()测试是否纯在等价于True的元素
any(list1)
True
7.切片
除了列表以外切片还适用于元组,字符串,range对象
切片不会对列表进行改变,而是返回一个新的列表
👇在形式上,切片使用2个冒号分隔的3个数字来完成
[start : end : step]
list1=list(range(1,10))#生成一个1到9的整数列表,步长为1
list1
[1, 2, 3, 4, 5, 6, 7, 8, 9]
list1[1:8:2]
[2, 4, 6, 8]
start表示切片开始的位置,默认为0
end表示切片结束的位置,默认为列表长度
step表示切片时的步长,默认为1
👇当step为负整数时,表示反向切片,此时start应该在end右边
[ end : start: step]
list1[7:0:-2]
[8, 6, 4, 2]
如有建议或者发现错误请指正,谢谢