gpt4 book ai didi

python - 在 Python 中创建一个具有一定大小的空列表

转载 作者:IT老高 更新时间:2023-10-28 12:03:23 29 4
gpt4 key购买 nike

如何创建一个可以容纳 10 个元素的空列表?

之后,我想在该列表中分配值。例如:

xs = list()
for i in range(0, 9):
xs[i] = i

但是,这会导致 IndexError: list assignment index out of range。为什么?


编者注:

在 Python 中,列表没有固定容量,但无法分配给不存在的元素。此处的答案显示了创建包含 10 个“虚拟”元素的列表以供以后替换的代码。然而,大多数遇到这个问题的初学者真的只是想通过添加元素来构建一个列表。这应该使用 .append 方法来完成,尽管通常会有针对特定问题的方法来更直接地创建列表。请看 Why does this iterative list-growing code give IndexError: list assignment index out of range? How can I repeatedly add elements to a list?了解详情。

最佳答案

您不能分配给像 xs[i] = value 这样的列表,除非该列表已经用至少 i+1 元素进行了初始化。相反,使用 xs.append(value) 将元素添加到列表的末尾。 (虽然如果您使用字典而不是列表,则可以使用赋值符号。)

创建一个空列表:

>>> xs = [None] * 10
>>> xs
[None, None, None, None, None, None, None, None, None, None]

为上述列表的现有元素赋值:

>>> xs[1] = 5
>>> xs
[None, 5, None, None, None, None, None, None, None, None]

请记住,像 xs[15] = 5 这样的东西仍然会失败,因为我们的列表只有 10 个元素。

range(x) 从 [0, 1, 2, ... x-1] 创建一个列表

# 2.X only. Use list(range(10)) in 3.X.
>>> xs = range(10)
>>> xs
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

使用函数创建列表:

>>> def display():
... xs = []
... for i in range(9): # This is just to tell you how to create a list.
... xs.append(i)
... return xs
...
>>> print display()
[0, 1, 2, 3, 4, 5, 6, 7, 8]

列表理解(使用正方形,因为对于范围,您不需要执行所有这些操作,只需返回 range(0,9) ):

>>> def display():
... return [x**2 for x in range(9)]
...
>>> print display()
[0, 1, 4, 9, 16, 25, 36, 49, 64]

关于python - 在 Python 中创建一个具有一定大小的空列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10712002/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com