将值追加到函数 range() 的返回值



我正在学习python,并且正在学习Dive into the Python一书。它说:

内置的 range 函数返回整数列表。在其 最简单的形式,它采用上限并返回一个从零开始的列表 计算到但不包括上限。

根据它所说的,它返回一个列表。我以为我可以通过追加函数为其附加一个值,但我不能。

>>> l = range(7)
>>> l
[0, 1, 2, 3, 4, 5, 6]
>>> l.append(13)
>>> l
[0, 1, 2, 3, 4, 5, 6, 13]
>>> l = range(7).append(13)
>>> l

它不打印任何东西,是什么原因?

原因是list.append就地运行,因此总是返回None

换句话说,这一行:

l = range(7).append(13)

相当于这个:

l = None

另请注意,您发布的示例证明,如果您在自己的行上调用 list.append,则向 range 返回的列表追加值会按预期工作:

>>> l = range(7)
>>> l.append(13)  # Call list.append on its own line
>>> l  # And it works as expected
[0, 1, 2, 3, 4, 5, 6, 13]
>>>

最新更新