Вы можете создать подсписок, который разделит данные, которые вам нужно распечатать.
Перед печатью каждой части проверьте, нужно ли печатать '\n'
для предыдущей строки и печатать разделы без '\n'
:
r, c = map(int, input().split())
# create the parts that go into each line as sublist inside partitioned
partitioned = [ list(range(i+1,i+c+1)) for i in range(0,r*c,c)]
# ^^^^ 1 ^^^^ ^^^^ 2 ^^^^
for i,data in enumerate(partitioned):
if i>0: # we need to print a newline after what we printed last
print("")
print(*data, sep = " ", end = "") # print sublist with spaces between numbers and no \n
^^^^ 1 ^^^^
создает диапазон всех чисел, которые необходимо распечатать для каждого раздела
^^^^ 2 ^^^^
создает начальные номера каждой "строки", используемой в ^^^^ 1 ^^^^
(уменьшается на 1, но фиксируется в диапазоне 1)
enumerate(partitioned)
возвращает позицию внутри последовательности и данные в этой позиции - вы хотите печатать '\n'
только после первого вывода.
После последнего partitioned
- вывода выход for ...
завершен и больше не будет вводиться - следовательно, после него нет \ n.
Вывод для '6 3'
(\ n добавлено для ясности):
1 2 3\n
4 5 6\n
7 8 9\n
10 11 12\n
13 14 15\n
16 17 18
с partitioned
:
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]]