Спосіб №1: Використання sorted() + zip() + itemgetter() Поєднуючи ці три функції, ми можемо досягти поставленого завдання. Функції zip об’єднують два списки разом, функція sorted сортує список, а функція itemgetter використовується для визначення показників, за якими нам потрібно зсунути другий список, у цьому випадку перший список.
Концептуально сортування злиттям працює наступним чином:
- Розділіть несортований список на n підсписків, кожен з яких містить 1 елемент (список з 1 елемента вважається відсортованим).
- Неодноразово об’єднуйте підсписки, щоб створити нові відсортовані підсписки, поки не залишиться лише 1 підсписок. Це буде відсортований список.
Ви можете сортувати список у Python за допомогою методу sort().. Метод приймає два необов’язкові аргументи: reverse : який сортує список у зворотному порядку (за спаданням), якщо True, або у звичайному порядку (за зростанням), якщо False (що є за замовчуванням) key : функція, яку ви надаєте для опису методу сортування .
Рішення
- Ми визначаємо новий список, щоб додати всі елементи з двох інших списків у відсортований спосіб.
- Ми визначаємо два індекси, які вказують на кожен елемент у кожному списку.
- Ми повторюємо обидва списки, залишаючи елементи в обох списках.
- Ми порівнюємо елементи з обох списків і додаємо менший до нового списку в кожній ітерації.
Кроки:
- Ініціалізація вихідного списку та списку порядку сортування.
- Створіть спеціальну функцію для отримання індексу елемента в списку порядку сортування.
- Використовуйте функцію sorted() із спеціальною функцією як ключ для сортування вихідного списку на основі списку порядку сортування.
- Зберігайте відсортований список у змінній результату.