将值附加到函数范围的返回值()

yun*_*din 1 python list python-2.x

我正在学习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
Run Code Online (Sandbox Code Playgroud)

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

iCo*_*dez 6

原因是list.append就地操作因此总是返回None.

换句话说,这一行:

l = range(7).append(13)
Run Code Online (Sandbox Code Playgroud)

相当于:

l = None
Run Code Online (Sandbox Code Playgroud)

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

>>> 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]
>>>
Run Code Online (Sandbox Code Playgroud)