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: Можете ли вы предложить мне другой способ получить nth быстрее, чем этот? вместо создания всех этих списков? (Я хочу, чтобы это заняло менее 1 секунды, даже если n очень большое)