Я решил логическую часть следующего упражнения, но не могу найти простое решение для вывода в требуемом формате. Это выглядит как список в списке для меня.
Описание проблемы:
Напишите программу, которая будет принимать строку цифр и даст вам все
возможные последовательные фрагменты длины n в этой строке.
Выдает ошибку, если n больше длины строки.
Примеры Например, строка «01234» имеет следующую 2-значную цифру
Ломтики:
[[0, 1], [1, 2], [2, 3], [3, 4]]
Эта же строка имеет следующие 4-значные срезы:
[[0, 1, 2, 3], [1, 2, 3, 4]]
Это мой код, который работает нормально, за исключением того, как он возвращает ответ, поэтому не могу отправить его.
digits = "01234"
n = 4
result = [None]*(len(digits)-n+1) #create a list with required size
for x in range(0, len(digits)-n+1):
result[x] = digits[x:n]
n += 1
print(result)
Этот код печатает ['0123', '1234']
, что является правильным ответом, но я хочу получить его в следующем формате: [[0, 1, 2, 3], [1, 2, 3, 4]]
(edit) добавление этой строки решило мою проблему, предложенную mkrieger1, спасибо
Это окончательный код:
def series_slices(digits, n):
digits = [int(x) for x in digits]
result = []
for x in range(0, len(digits)-n+1):
result.append(list(digits[x:n]))
n += 1
return result