美文网首页
python list 删除元素

python list 删除元素

作者: 顾慎为 | 来源:发表于2018-08-08 16:10 被阅读21次

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

相关文章

网友评论

      本文标题:python list 删除元素

      本文链接:https://www.haomeiwen.com/subject/taztbftx.html