python list 删除元素

num_list = [1, 2, 2, 3, 4, 5]为例。

删除一个可以确定的元素,一共有三种方法。

  1. num_list.remove(2),会删除第一个值为2的元素。
  2. num_list.pop(1),会弹出索引为1的元素,若不传参数,则弹出最后一个元素。
  3. del num_list[1],会删除索引为1的元素。
  4. 还可以使用切片来达到目的,属于重新构造一个新的列表。

删除一个符合条件的元素。

for i, item in enumerate(num_list):
    if item == 2:
        num_list.pop(i)
    else:
        print(item)

结果是:

1
3
4
5

再查看下num_list,发现是[1,2,3,4,5],值为2的元素只删除了第一个。

原因是当删除第一个值为2的元素时,列表往前移动一位,导致第二个2直接被跳过了。

解决办法是反向,这样可以避免出现此问题。

for i in range(len(num_list) - 1, -1, -1):
    if num_list[i] == 2:
        num_list.pop(i)
    else:
        print(num_list[i]) 

结果是:

5
4
3
1

另外,还有方法可达成目的,但是会增加内存使用。

[item for item in num_list if item != 2]

def f():
    for item in num_list:
        if item != 2:
            yield item
list(f())
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 列表: 有序的可变的元素集合 定义: 方式1[元素1, 元素2, 元素3...]例如: [1, 2, 3, 4, ...
    伯wen阅读 358评论 0 0
  • 1 Redis介绍1.1 什么是NoSql为了解决高并发、高可扩展、高可用、大数据存储问题而产生的数据库解决方...
    克鲁德李阅读 5,382评论 0 36
  • 8月22日-----字符串相关 2-3 个性化消息: 将用户的姓名存到一个变量中,并向该用户显示一条消息。显示的消...
    future_d180阅读 1,002评论 0 1
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,475评论 0 9
  • 小时候盼过年,因为一过年有好吃的,又新衣服穿,有烟花爆竹放,还有一家人围着桌子边看春晚边包饺子。 ...
    七月的桃之妖妖阅读 530评论 1 5