Python 中列表( List )中的 del,remove,和 pop 等的用法和区别

1. pop

value = List.pop(index)

pop按照索引位置删除元素;
无参数时默认删除最后一个元素
返回删除的元素值

List_pop = [1, 2, 3, 4, 5, 6]
print(List_pop.pop(1)) # 返回删除后的元素值
print("after pop", List_pop)
# 2
# after pop [1, 3, 4, 5, 6]

2. remove

remove 按照删除,删除单个元素,
删除首个符合条件的元素
返回值为空 None

List_remove = [1, 2, 2, 2, 3, 4]
print(List_remove.remove(2))
print("after remove", List_remove)
# None
# after remove [1, 2, 2, 3, 4]

3. del

del 根据索引位置来删除单个值或指定范围内的值

3.1 使用del语句删除单独元素

【注意】:del是删除引用(变量)而不是删除对象(数据),对象由自动垃圾回收机制(GC)删除

List_del_1 = [1, 2, 2, 2, 3, 4]
del List_del_1[1]
print("after del List_del_1", List_del_1)
# after del List_del_1 [1, 2, 2, 3, 4]

3.2 使用del语句删除指定范围内的值

List_del_2 = [1, 2, 2, 2, 3, 4]
del List_del_2[2:4] # 删除[2,4)索引范围内的值
print("after del List_del_2", List_del_2)
# after del List_del_2 [1, 2, 3, 4]

3.3 del 删除整个数据对象(列表、集合等)

List_del_3 = [1, 2, 2, 2, 3, 4]
del List_del_3
# print(List_del_3) # 删除后,找不到对象
# NameError: name 'List_del_3' is not defined
# 注意:del是删除引用(变量)而不是删除对象(数据),对象由自动垃圾回收机制(GC)删除

4. 列表中常用方法的时间复杂度

index() O(1)
append O(1)
pop() O(1)
pop(i) O(n)
insert(i,item) O(n)
del operator O(n)
iteration O(n)
contains(in) O(n)
get slice[x:y] O(k)
del slice O(n)
set slice O(n+k)
reverse O(n)
concatenate O(k)
sort O(nlogn)
multiply O(nk)

O括号里面的值越大代表效率越低

由此可见,如果算法中采用 pop( index) 的做法去删除数据,其实空间复杂度已经是 O(n).

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值