Другие языки программирования и технологии

Pycharm (Пожалуйста, помогите с написанием программы)

На завтра по информатике дали задание из сборника (фотографию прикреплю). Ранее изучали другую программу, а со второй четверть перешли на пачарм, иной раз вызывает трудности. Поэтому, пожалуйста! Помогите с написанием. В интерне много видел решений, но те были на других языках написаны...(
Помимо ввода и вывода, один проход по списку, без всяких удалений, изобретений велосипедов форматирования и прочих избыточных операций, которые так любят нейросети:
 from itertools import starmap, zip_longest as zipl
from random import randint

def fmt(seq):
return '\n'.join(map(''.join, zipl(*(map('%7d'.__mod__, seq),) * 8, fillvalue = '')))

def minmax(seq, key):
mn = mx = next(seq)
*_, _ = ((mn := min(mn, i, key=key), mx := max(mx, i, key=key)) for i in seq)
return (mn, mx)

lst = list(starmap(randint, ((-10000, 10000),) * int(input('Длина массива: '))))
print(fmt(iter(lst)))
mn, mx = minmax(iter(range(len(lst))), lst.__getitem__)
lst[mn], lst[mx] = lst[mx], lst[mn]
print(fmt(iter(lst)))
Список заполняется рандомом и выводится до и после обмена по 8 элементов на строке с 7-ю позициями под каждый элемент.
*** Иван ***
87 571
Лучший ответ
lenght = int(input('Введите длину массива: '))
print('Введите массив:')
l = list()
for i in range(lenght): #Вводим массив (каждый элемент с новой строки)
l.append(int(input()))

mx, mn = l.index(max(l)), l.index(min(l)) #Индексы макс и мин элементов
temp = l[mx] #Меняем
l[mx] = l[mn] #элементы
l[mn] = temp #местами

print('Массив с переставленными элементами:')
while(l):
for i in range(min(len(l), 8)): #Выводим строку из 8-ми элементов
s = str(l[i])
while len(s) < 7: #Пока длина числа < 7
s = ' ' + s #Добавляем пробелы
print(s, end = ' ')
print()
l = l[8:] #Удаляем из массива выведенные элементы
*** Иван *** Говнокод, с четырьмя итерациями по массиву, не считая ввода-вывода, когда достаточно одной.
Фанис Гиниятуллин Все отступы по удалялись(