【问题标题】:Remove element from a list generated with range in python? [duplicate]从python中使用范围生成的列表中删除元素? [复制]
【发布时间】:2014-10-10 00:21:12
【问题描述】:

这是一个简单的程序:

#!/usr/bin/env python3

l = list(range(5))
print(l, type(l))

l = list(range(5)).remove(2)
print(l, type(l))

由于某种原因,列表在删除元素时被破坏:

[0, 1, 2, 3, 4] <class 'list'>
None <class 'NoneType'>

(是程序输出)

我希望它会输出

[0, 1, 3, 4]

出了什么问题,如何从使用range 生成的列表中删除该元素?

【问题讨论】:

    标签: python


    【解决方案1】:

    您存储的是list.remove() 调用的返回值,而不是列表本身。 list.remove() 调用会更改列表并返回 None。它确实返回更改后的列表。

    先存储列表:

    l = list(range(5))
    l.remove(2)
    

    或使用列表推导来过滤:

    l = [i for i in range(5) if i != 2]
    

    【讨论】:

    • 那么我该如何移除元素呢?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-05
    相关资源
    最近更新 更多