Skip to main content
 首页 » 编程设计

python之在python中分配一个列表

2025年05月04日15cmt

pt=[2] 
pt[0]=raw_input() 

当我执行此操作并给出假设 1011 的输入时,它显示列表索引错误 - “列表分配索引超出范围”。我可以知道为什么吗?我想我无法正确分配列表。那么如何在 python 中分配一个包含 2 个元素的数组?

请您参考如下方法:

试试这个:

pt = list() 
pt.append(raw_input()) 
pt.append(raw_input()) 
print pt 

现在您的列表中有两个元素。一旦你更熟悉 python 语法,你可能会这样写:

pt = [raw_input(), raw_input()] 

此外,请注意不要将列表与 Java 或 C 中的数组混淆:列表是动态增长的。您不必在创建新列表时声明大小。

顺便说一句:我在交互式 shell 中试用了您的示例。它有效,但可能不像您预期​​的那样:

>>> pt = [2] 
>>> pt[0] = raw_input() 
1011 
>>> pt 
['1011'] 

我猜你认为 pt = [2] 会创建一个长度为 2 的列表,所以 pt[1] = raw_input() 会像你一样失败提到:

>>> pt = [2] 
>>> pt[0] = raw_input() 
1011 
>>> pt[1] = raw_input() # this is an assignment to an index not yet created. 
1012 
Traceback (most recent call last): 
  File "<stdin>", line 1, in <module> 
IndexError: list assignment index out of range 

实际上,pt = [2] 创建了一个包含一个元素的列表,在索引 0 处具有值 2:

>>> pt = [2] 
>>> pt 
[2] 
>>> 

因此您可以像上面演示的那样分配给索引 0,但分配给索引 1 将不起作用 - 使用 append 追加到列表。