0
点赞
收藏
分享

微信扫一扫

Python__12--列表元素的增、删、改、排序

1 列表元素的增、删、改、排序

除sorted(),id均不变

1.1 加

  • append() 在列表的末尾添加一个元素

    测试代码:

    lst=[10,20,30]
    print(id(lst))
    lst.append(100)
    print(lst,id(lst))
    

    测试结果:

    tmp552E.png (374×118) (amazonaws.com)

  • 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))

测试结果:

tmp5527.png (585×200) (amazonaws.com)

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

测试结果:

tmpC20.png (529×198) (amazonaws.com)

1.3 改

  1. 修改单个元素

    lst=[1,2,3,4]
    lst[2]=15
    print(lst)
    #输出[1,2,15,4]
    
  2. 修改多个元素

    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))

测试结果:

tmp8299.png (414×141) (amazonaws.com)

1.4 排序

  1. 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)

  2. 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的变化

tmpD33C.png (366×171) (amazonaws.com)

举报

相关推荐

0 条评论