gpt4 book ai didi

python - 为什么 range(0,10).remove(1) 不起作用?

转载 作者:太空狗 更新时间:2023-10-30 01:58:26 26 4
gpt4 key购买 nike

为什么

range(0,10).remove(1)

不起作用?

我知道这个问题很短,但我不知道为什么这个东西不起作用..可以写成一行吗?

最佳答案

x = range(0, 10) 将返回列表或 range 对象(取决于您的 Python 版本)。

python 2.x

x = range(0, 10).remove(1) 将返回 None 因为 list.remove 将修改列表 in-place 等返回 None。您的列表已创建并删除了值 1,但由于它从未分配给任何东西,因此它被垃圾收集了。

python 3.x

x = range(0, 10).remove(1) 将返回 AttributeError 作为 range objects没有 remove 方法。如果您使用 list(range(0, 10)).remove(1) 将其转换为列表,您将遇到与 Python 2 相同的问题。

获得所需内容的一种方法是使用 list comprehension .在列表理解中,您将遍历 range(0, 10) 但使用 if 语句仅添加一个不为 1 的值,例如:

x = [i for i in range(0, 10) if i != 1]
# [0, 2, 3, 4, 5, 6, 7, 8, 9]

关于python - 为什么 range(0,10).remove(1) 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28150965/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com