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 追加到列表。
