python - 附加一个值到函数 range() 的返回值

标签 python list python-2.x

<分区>

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

The built−in range function returns a list of integers. In its simplest form, it takes an upper limit and returns a zero−based list counting up to but not including the upper limit.

根据它所说的,它返回一个列表。我以为我可以使用 append 函数为其附加一个值,但我做不到。

>>> 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]
>>>

关于python - 附加一个值到函数 range() 的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24191790/

相关文章:

python-如何反转负整数或非整数

python - 从 python 中的 weakref 代理获取常规引用

python - 使用 skimage view_as_windows 制作图像补丁和重建补丁

具有进程和池的 Python 生产者/消费者

c - 特定的链表 C 函数

java - 数组中多个最频繁出现的元素

python - 重新排序十六进制字符串中的字节顺序(python)

python - 为什么python 2.7.2在/usr/lib/python2.7中没有符号链接(symbolic link)

python - 如何替换列表中每个元素中的特定字符

python - 循环打印字典字典