Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с задачей на питоне

Павел Сахаров Ученик (219), закрыт 9 месяцев назад
Дан список из k элементов, каждый из которых является списком из целых чисел. В каждом из k элементов исходного списка найти наибольший элемент и поменять его местами с элементом, номер которого совпадает с номером элемента в исходном списке.
Лучший ответ
Папа Высший разум (121151) 10 месяцев назад
Эти словесные выкрутасы - просто жесть. Надо в каждой строке матрицы поменять максимальный элемент с элементом главной диагонали, или что?

И что значит "дан список"? Кем дан, в каком формате?

Код:
 def exchmaxdiag(r, i):
j = max(range(len(r)), key = r.__getitem__)
n, x = min(i, j), max(i, j)
return r if j == i else r[:n] + r[x:x+1] + r[n+1:x] + r[n:n+1] + r[x+1:]

k = int(input())
m = [[int(s) for s in input().split()] for _ in range(k)]
print(*(''.join(map('%2d'.__mod__, exchmaxdiag(r, i))) for i, r in enumerate(m)), sep = '\n')


Пример:
 5
1 2 3 4 5
7 8 9 1 2
3 4 5 6 1
2 3 4 5 6
9 8 7 6 5
(вводим количество строк, затем - элементы каждой строки через пробел)

Результат:
 5 2 3 4 1
7 9 8 1 2
3 4 6 5 1
2 3 4 6 5
5 8 7 6 9
Видим, что во всех строках максимальный элемент поменялся местами с элементом главной диагонали.

В задаче не сказано, что строки должны быть одинаковой длины, или что матрица квадратная. Эти случаи также обрабатываются корректно: если строка слишком короткая, то максимальный элемент ни с чем не меняется, а если слишком длинная - то замена проходит штатно. Пример:
 3
1 2 3 4 5 6
8 7 3
1 4
Результат:
 6 2 3 4 5 1
7 8 3
1 4
Павел СахаровУченик (219) 10 месяцев назад
Самому тяжело понять, задают задачии просто жесть, как я понимаю: имеем основной список в нем находится 3 подсписка, в каждом подсписке нужно найти наибольший элемент и поменять его местами с элементом, номер которого совпадает с номером подсписка в основном списке
Папа Высший разум (121151) Павел Сахаров, что значит "имеем"? В каком формате имеем, из какого источника?
Остальные ответы
Похожие вопросы