Python中对列表进行的操作汇总
本文列举的操作
列表常用操作的汇总
排序方法(正序,逆序)
列表的连接
列表增删改查
列表常用函数及方法
排序方法(正序,逆序)
正序
sort函数
此函数会导致原来的列表改变
list1=[2,5,6,1,3,7]
list1.sort()
print(list1)
# 输出 [1, 2, 3, 5, 6, 7]
sorted函数
此函数不会改变原来列表生成一个排序好的新列表
list1=[2,5,6,1,3,7]
list2=sorted(list1)
print(list1,list2)
#输出的列表list1 [2, 5, 6, 1, 3, 7]
#输出的列表list2 [1, 2, 3, 5, 6, 7]
以上两种函数为正序输出
如果你想逆序输出,参数reverse=True
逆序
list1=[2,5,6,1,3,7]
list1.sort(reverse=True)
print(list1)
# 输出 [7, 6, 5, 3, 2, 1]
list1=[2,5,6,1,3,7]
list2=sorted(list1,reverse=True)
print(list1,list2)
#输出的列表list1 [2, 5, 6, 1, 3, 7]
#输出的列表list2 [7, 6, 5, 3, 2, 1]
除了更改参数的方法还有reverse() 函数
list1=[2,5,6,1,3,7]
ex=list1
list1.reverse()
print(list1,ex)
# 输出 [7, 3, 1, 6, 5, 2] [7, 3, 1, 6, 5, 2]
我们通过两个名字list1,ex访问[2,5,6,1,3,7]这个对象
当通过list1这个名字使对象发生改变的时候,之后我们通过ex这个名字访问对象时对象已经改变。(list1使对象发生的改变)
改变之前
改变之后
列表的连接
list1=[2,5,6,1,3,7]
list2=list1+[11,13,12]
list3=list1*3
list4=[list1]*3
print(list1,list2,list3,list4)
# 输出 list1 [2, 5, 6, 1, 3, 7]
# 输出 list2 [2, 5, 6, 1, 3, 7, 11, 13, 12]
# 输出 list3 [2, 5, 6, 1, 3, 7, 2, 5, 6, 1, 3, 7, 2, 5, 6, 1, 3, 7]
# 输出 list4 [[2, 5, 6, 1, 3, 7], [2, 5, 6, 1, 3, 7], [2, 5, 6, 1, 3, 7]]
python 中 + 可以连接两个片段
注意
有一个问题,那就是如果我们更改list4中的一个元素比如列表中第0个元素(列表)的第0个元素2变为9
[[→2, 5, 6, 1, 3, 7], [2, 5, 6, 1, 3, 7], [2, 5, 6, 1, 3, 7]]
即箭头所指的元素
list1=[2,5,6,1,3,7]
list2=list1+[11,13,12]
list3=list1*3
list4=[list1]*3
list4[0][0]=9
print(list1,list2,list3,list4)
# 输出 list1 [2, 5, 6, 1, 3, 7]
# 输出 list2 [2, 5, 6, 1, 3, 7, 11, 13, 12]
# 输出 list3 [2, 5, 6, 1, 3, 7, 2, 5, 6, 1, 3, 7, 2, 5, 6, 1, 3, 7]
# 输出 list4 [[9, 5, 6, 1, 3, 7], [9, 5, 6, 1, 3, 7], [9, 5, 6, 1, 3, 7]]
那么问题来了为什么三个列表的第0个元素全部变为9了?
答案和上面图一样也是对象和名字之间的关系
列表增删改查
增
append()
list1=[2,5,6,1,3,7]
list1.append(5)
print(list1)
# 输出 [2, 5, 6, 1, 3, 7, 5]
删
pop()
remove()
list1=[2,5,6,1,3,6,7]
list1.pop(0) #删除索引为0的表项
list2=[2,5,6,1,3,6,7]
list2.remove(6) #删除第一个元素为6的表项
print(list1,list2)
# 输出 [5, 6, 1, 3, 6, 7]
# 输出 [2, 5, 1, 3, 6, 7]
查
index()
list1=[2,5,6,1,3,6,7]
print(list1.index(6))
# 输出 2