Как использовать .sorted для строки двумерного массива c сохранением соответствия второй строки? Нужно отранжировать по возрастанию первую строку да так чтобы значения второй строки при ранжировании по возрастанию первой строки приняли места соответствующих им до ранжирования элементов первой строки.
Имеем [[5, 1, 3], [1, 2, 7]] нужно [[1, 3, 5], [2, 7, 1]]

21 Авг 2019 в 06:23
179 +1
0
Ответы
1

Для этого можно воспользоваться функцией zip, чтобы объединить элементы двух строк в кортежи, затем использовать функцию sorted с параметром key, чтобы отсортировать массив по первой строке, а затем преобразовать результат обратно в двухмерный массив:

arr = [[5, 1, 3], [1, 2, 7]]
sorted_arr = [list(t) for t in zip(*sorted(zip(arr[0], arr[1])))]
print(sorted_arr)

Этот код выведет:

[[1, 3, 5], [2, 7, 1]]
20 Апр в 13:19
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 548 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир