Как отсортировать два списка вместе в Python: несколько методов

Чтобы отсортировать два списка в Python, вы можете использовать несколько методов. Вот несколько подходов:

  1. zip() и sorted(): вы можете объединить два списка с помощью функции zip(), а затем использовать функцию sorted() для сортировки объединенного списка на основе определенного критерия. Вот пример:
list1 = [3, 1, 4]
list2 = ['c', 'a', 'b']
combined = list(zip(list1, list2))
sorted_combined = sorted(combined)
sorted_list1, sorted_list2 = zip(*sorted_combined)
print(sorted_list1)  # Output: (1, 3, 4)
print(sorted_list2)  # Output: ('a', 'c', 'b')
  1. Использование понимания списка. Вы также можете использовать понимание списка для создания нового списка кортежей, где каждый кортеж состоит из соответствующих элементов из обоих списков. Затем вы можете отсортировать новый список по определенному критерию. Вот пример:
list1 = [3, 1, 4]
list2 = ['c', 'a', 'b']
combined = [(x, y) for x, y in zip(list1, list2)]
sorted_combined = sorted(combined)
sorted_list1 = [x for x, _ in sorted_combined]
sorted_list2 = [y for _, y in sorted_combined]
print(sorted_list1)  # Output: [1, 3, 4]
print(sorted_list2)  # Output: ['a', 'c', 'b']
  1. Использование numpy: если у вас установлена ​​библиотека numpy, вы также можете использовать ее для сортировки двух списков вместе. Вот пример:
import numpy as np
list1 = [3, 1, 4]
list2 = ['c', 'a', 'b']
combined = np.array([list1, list2])
sorted_combined = combined[:, np.argsort(combined[0])]
sorted_list1 = sorted_combined[0]
sorted_list2 = sorted_combined[1]
print(sorted_list1)  # Output: [1 3 4]
print(sorted_list2)  # Output: ['a' 'c' 'b']