【问题标题】:Python Arrays automatically expand or not? [closed]Python 数组是否自动扩展? [关闭]
【发布时间】:2013-11-11 13:05:11
【问题描述】:

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

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

【问题讨论】:

  • 在 Python 中,没有数组,有“列表”,是的,它们会自动扩展,因为它们没有以大小限制启动。然而,这个问题不适合这个网站,你可以很容易地通过谷歌搜索自己找到答案,询问任何对 Python 有任何了解的人,或阅读文档。

标签: python arrays multidimensional-array


【解决方案1】:

取决于您所说的“自动”:

>>> 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 增加了列表的长度以容纳新元素。索引分配不会扩展数组。切片分配确实扩展了数组。

【讨论】:

  • 切片分配也可以缩小(或删除)list的部分
【解决方案2】:

该语句指的是内存中的空间分配。是的,这是真的!你可以创建一个列表(不是数组,这是 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]

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

修改列表的方法有很多,可以看详情here。希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-17
    • 1970-01-01
    • 2018-07-24
    • 1970-01-01
    相关资源
    最近更新 更多