【发布时间】:2018-12-15 00:18:18
【问题描述】:
edit:现在解决了最初的问题,看问题的底部;我还有一个问题。
我有一个列表,s2,它的第一个元素 (s[0]) 是长度为 n 的数字列表(由用户输入定义),其元素也由用户定义。我想要做的是创建 n-1 个数字序列作为s2 的其他元素。这些序列中的每一个都是由前一个序列中的顺序元素的减法组成。 (右元素 - 左元素)所以第二个序列的长度是 n-1,第三个:n-2 ... 第 n 个序列的长度(s2[n-1]'s)是 1。
for j in range(1, n):
for k in range(0,n-j):
s2[j].append(s2[j-1][k+1] - s2[j-1][k])
但我收到此错误:
Traceback (most recent call last):
File "[path]", line 9, in <module>
s2[j].append(s2[j-1][k+1] - s2[j-1][k])
IndexError: list index out of range
你能帮我调试一下吗?
编辑:
n = int(raw_input())
s = raw_input()
s1 = [int(i) for i in s.split(" ")]
s2 = []
s2.append(s1)
for j in range(1, n):
for k in range(0,n-j):
s2[j].append(s2[j-1][k+1] - s2[j-1][k])
示例输入:
4
1 2 3 4
ps:你能建议我另一种方法来比这更快地获得第 n 个吗?而不是创建所有这些列表? (即使 n 很大,我也希望它花费不到 1 秒)
【问题讨论】:
-
您在这里使用的是
list,而不是array。数组存在于 python 中,是完全不同的东西。 -
请提供输入输出示例。
标签: python python-2.7 list debugging index-error