Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг
07 Июл 2023
2 мин
587

Сортировка списка в соответствии с соответствующими значениями из параллельного списка

Одной из общих задач, с которыми можно столкнуться при работе с данными в Python, является сортировка одного списка на основе значений другого списка.

Одной из общих задач, с которыми можно столкнуться при работе с данными в Python, является сортировка одного списка на основе значений другого списка. Например, имеются два списка:

Список_1 = ["яблоко", "банан", "вишня", "киви", "манго"]
Список_2 = [ 5, 3, 4, 2, 1]

Задача состоит в том, чтобы отсортировать Список_1 в соответствии со значениями из Список_2, то есть так, чтобы порядок элементов в Список_1 соответствовал порядку значений в Список_2.

В данном случае, после сортировки Список_1 должен выглядеть так:

["манго", "киви", "банан", "вишня", "яблоко"]

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

Если длины итераторов не одинаковы, то возвращается список с длиной самого короткого итератора. Если один из итераторов закончился, элементы не будут добавлены в кортежи.

Сначала, с помощью zip(), создается список кортежей, где каждый кортеж содержит элемент из первого списка и соответствующий ему элемент из второго списка. Затем этот список кортежей сортируется по второму элементу каждого кортежа (то есть по значению из второго списка). Наконец, из отсортированного списка кортежей создается новый список, содержащий только элементы из первого списка.

Вот как это можно сделать:

Список_1 = ["яблоко", "банан", "вишня", "киви", "манго"]
Список_2 = [ 5, 3, 4, 2, 1]

список_кортежей = list(zip(Список_1, Список_2))
список_кортежей.sort(key=lambda x: x[1])

отсортированный_список = [элемент[0] for элемент in список_кортежей]

В результате отсортированный_список будет выглядеть так:

["манго", "киви", "банан", "вишня", "яблоко"]

Таким образом, используя функцию zip() и метод sort(), можно легко отсортировать один список на основе значений другого списка.

Тест на профориентацию
За 10 минут узнайте, как ваш опыт пригодиться в IT индустрии
Подробнее
Тест на профориентацию

Добавить комментарий