Учитывая целое число n
, мне нужно сгенерировать последовательность, подобную приведенной ниже.
Есть ли приложение combinations
, которое может дать то же самое без двойного цикла в коде (что кажется не слишком питоническим)?
код
n = 5
sequence = [1] * n
print(sequence)
for i in range(n-1):
for j in range(n-i-1):
sequence[n-j-1] += 1
print(sequence)
последовательность вывода
код выше дает:
[1, 1, 1, 1, 1]
[1, 1, 1, 1, 2]
[1, 1, 1, 2, 2]
[1, 1, 2, 2, 2]
[1, 2, 2, 2, 2]
[1, 2, 2, 2, 3]
[1, 2, 2, 3, 3]
[1, 2, 3, 3, 3]
[1, 2, 3, 3, 4]
[1, 2, 3, 4, 4]
[1, 2, 3, 4, 5]
стилистическая нота
Я мог бы преобразовать double-for в один цикл while с двумя индексами i, j, но я нахожу, что решение по какой-то причине сложнее отладить