Python2-索引器:创建数组数组
这是我剧本的一部分:Python2-索引器:创建数组数组,python,arrays,python-2.7,input,raw-input,Python,Arrays,Python 2.7,Input,Raw Input,这是我剧本的一部分: k = int(raw_input()) order = [] o = [] for i in range(1, k): o.append(raw_input()) order.append([int(n) for n in list(o[i])]) 在这些输入行之后,我得到了以下错误: 3 241356789 Traceback (most recent call last): File "[path]", line 11, in <m
k = int(raw_input())
order = []
o = []
for i in range(1, k):
o.append(raw_input())
order.append([int(n) for n in list(o[i])])
在这些输入行之后,我得到了以下错误:
3
241356789
Traceback (most recent call last):
File "[path]", line 11, in <module>
order.append([int(n) for n in list(o[i])])
IndexError: list index out of range
3
241356789
回溯(最近一次呼叫最后一次):
文件“[path]”,第11行,在
order.append([int(n)表示列表中的n(o[i]))
索引器:列表索引超出范围
但我就是不明白为什么。有人能帮我吗?(我是初学者)Python有一个基于0的索引。 由于您实际上是从1而不是从零开始循环,因此第一个调用将超过现有列表(此时,该列表仅具有长度
0
)
只需将您的线路更改为
for i in range(0,k):
修复了我的问题。索引
i
以1(范围(1,k))开始,但索引o
以0开始。可以使用o[-1]访问最后一个元素。或者将范围(k)内i的for循环更改为
从范围(1,k)内i的中删除“1”:
对于范围(k)中的i,行
对我来说效果很好:
你可以这样做,以便为范围(k-1)中的i少做一个循环,
Smply put:对于范围(0,k)中的i:
而不是范围(1,k)中的i:以便从第0个索引开始。因此,范围(1,k)
(在Python 2中)为您提供一个列表[1,2,3,…,k-1]
。
当您通过输入中的内容附加列表o
时,该元素在索引0
>> o = []
>> o.append(42)
>> o[0]
42
但是,在循环中,您尝试获取索引1
,但该索引不可用
请记住,列表中的第一个元素可以通过索引
0
获得,其中第二个元素具有索引1
等。不,我没有这样做。I
从1(一)开始,您的第一个append
向列表中添加一个元素,即索引0(零),但您正在尝试索引1。