1 列表元素的增、删、改、排序
除sorted(),id均不变
1.1 加
-
append() 在列表的末尾添加一个元素
测试代码:
lst=[10,20,30] print(id(lst)) lst.append(100) print(lst,id(lst))
测试结果:
-
extend() 在列表的末尾添加至少一个元素
lst=[1,2,3,4] lst2=[10,25] lst.extend(lst2) #输出为[1,2,3,4,10,25] lst.append(lst2) #输出为[1,2,3,4,[10,25]]
-
insert() 向指定位置添加元素
lst.insert(1,100) #输出为[1,100,2,3,4]
-
切片
lst=[1,2,3,4] lst2=[10,25] lst[1:]=lst2 print(lst) #输出为[1,10,25]。序号1及之后元素被覆盖
测试代码:
lst=[1,2,3,4]
lst2=[10,25]
print(lst,id(lst),id(1),id(20))
lst.extend(lst2)
print(lst,id(lst))
lst.append(lst2)
print(lst,id(lst))
lst.insert(1,100)
print(lst,id(lst))
lst[1:]=lst2
print(lst,id(lst))
测试结果:
1.2 删
-
remove
lst=[1,2,3,1] lst.remove(1) print(lst) #输出为[2,3,1]。从列表中删除一个元素,若有重复元素则删除第一个
-
pop 根据索引移除元素
lst=[1,2,3,1] lst.pop(1) #输出[1,3,1] lst.pop() #输出[1,2,3]
-
切片删除
#id不变 lst=[1,2,3,1] lst[1:3]=[] print(lst) #输出为[1,1]
-
clear 清除列表中的所有元素
lst.clear()
-
del 将整个列表对象删除
del lst #删除后列表不存在
测试代码:
lst=[1,2,3,1,4,10,20,30]
print(lst,id(lst))
lst.remove(1)
print(lst,id(lst))
lst.pop(1)
print(lst,id(lst))
lst[1:3]=[]
print(lst,id(lst))
lst.clear()
print(lst,id(lst))
del lst
测试结果:
1.3 改
-
修改单个元素
lst=[1,2,3,4] lst[2]=15 print(lst) #输出[1,2,15,4]
-
修改多个元素
lst=[1,2,3,4] lst[1:3]=[10,20,30,40] print(lst) #输出[1,10,20,30,40,4]
测试代码:
lst=[1,2,3,4]
print(lst,id(lst))
lst[2]=15
print(lst,id(lst))
lst[1:3]=[10,20,30,40]
print(lst,id(lst))
测试结果:
1.4 排序
-
lst.sort()
-
id不变,对原列表进行操作
-
升序排列 lst.sort()或者lst.sort(reverse=False)
lst=[1,20,3,40] lst.sort() print(lst) #输出[1,3,20,40]
-
降序排列 lst.sort(reverse=True)
-
-
sorted()
- id变,产生新的列表对象
- newlst=sorted(lst) 升序
- newlst=sorted(lst,reverse=True) 降序
测试代码:
lst=[1,20,3,40]
print(lst,id(lst))
lst.sort()
print(lst,id(lst))
lst.sort(reverse=True)
print(lst,id(lst))
newlst=sorted(lst)
print(newlst,id(newlst))
测试结果:
注意观察id的变化
标签:__,10,12,20,lst2,Python,lst,print,id From: https://blog.51cto.com/husheng/5967117