-3

我是 Python 新手,有人告诉我“如果需要,Python 数组会自动扩展大小”。

这是真的吗?我在 Python 3.3.2 的文档中找不到它。任何能回答问题的真实资源或指导。谢谢。

4

2 回答 2

4

取决于您所说的“自动”是什么意思:

>>> foo = list()
>>> foo.append(1)
>>> foo
[1]
>>> foo[1] = 0
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list assignment index out of range
>>> foo[1:] = [0]
>>> foo
[1, 0]

因此append增加列表的长度以容纳新元素。索引分配不会扩展数组。切片分配确实扩展了数组。

于 2013-11-11T13:07:50.677 回答
3

该语句指的是内存中的空间分配。是的,这是真的!您可以创建一个列表(不是数组,这是 python)并根据需要扩展、扩展、修改它,因为 Python 不限制大小。

>>> l = [1, 2]
>>> l.extend([3, 4, 5, 6])
>>> l
[1, 2, 3, 4, 5, 6]

在这里,您可以看到l原来有两个项目,然后扩展,现在有 6 个项目。

接下来,您还可以将其缩短:

>>> l.pop()
6
>>> l
[1, 2, 3, 4, 5]

这将删除列表的最后一项。

修改列表的方法有很多种,您可以在此处查看详细信息。希望这可以帮助!

于 2013-11-11T13:07:10.980 回答