Задача: Найти и поменять местами максимальный и минимальный элементы двухмерного списка

Опубликован: 28.10.2024 27

Условие: Дан произвольный двухмерный список:

[ [11, 32, 13, 44, 55], [31, 42, 53, 66, 75], [12, 26, 33, 45, 52], [15, 22, 35, 64, 57], [21, 52, 32, 44, 38], ]

Найдите максимальный и минимальный элементы и поменяйте их местами.

Решение:

Для поиска максимального и минимального элементов в двухмерном списке, а также соответствующих им индексов, воспользуемся функцией enumerate(), которая позволяет получить значения и их индексы за один проход списка.

# исходный двухмерный список
lst = [
    [11, 32, 13, 44, 55],
    [31, 42, 53, 66, 75],
    [12, 85, 33, 45, 52],
    [15, 22, 35, 64, 57],
    [21, 52, 32, 10, 38],
]

max_lst, i_max, j_max = 0, None, None
min_lst, i_min, j_min = max(sum(lst, [])), None, None

for i, lst_i in enumerate(lst):
    for j, v in enumerate(lst_i):
        if v == max(lst_i) and v > max_lst:
            max_lst, i_max, j_max = v, i, j
        if v == min(lst_i) and v < min_lst:
            min_lst, i_min, j_min = v, i, j


print(f"Максимальный элемент: {max_lst} с индексами ({i_max}, {j_max})")
print(f"Минимальный элемент: {min_lst} с индексами ({i_min}, {j_min})")

lst[i_min][j_min], lst[i_max][j_max] = lst[i_max][j_max], lst[i_min][j_min]
print("Результирующий список, в котором поменяли местами "
      "максимальный и минимальный элементы ")
print(lst)

# Вывод
# Максимальный элемент: 85 с индексами (2, 1)
# Минимальный элемент: 10 с индексами (4, 3)
# Результирующий список, в котором поменяли местами максимальный и минимальный элементы 
# [[11, 32, 13, 44, 55], [31, 42, 53, 66, 75], [12, 10, 33, 45, 52], [15, 22, 35, 64, 57], [21, 52, 32, 85, 38]]

Похожие посты

Задача: Решение квадратного уравнения

Задача: Тренажер таблицы умножения

Задача: Наибольший числовой палиндром

Задача: Разложение числа на простые множители

Комментариев нет.