Сортировка двух соответствующих списков: несколько методов и примеры кода

При работе с данными часто встречаются ситуации, когда у вас есть два списка, ссылающихся друг на друга. Сортировка таких списков в тандеме может быть сложной задачей, но не бойтесь! В этой статье мы рассмотрим несколько методов эффективного выполнения этой задачи. Мы предоставим примеры кода на Python, чтобы проиллюстрировать каждый подход. Давайте погрузимся!

Метод 1: сортировка с помощью ZIP и сортировки.
Пример кода:

list1 = [4, 2, 3, 1]
list2 = ['d', 'b', 'c', 'a']
sorted_pairs = sorted(zip(list1, list2))
sorted_list1, sorted_list2 = zip(*sorted_pairs)
print(sorted_list1)  # Output: (1, 2, 3, 4)
print(sorted_list2)  # Output: ('a', 'b', 'c', 'd')

Метод 2: сортировка с помощью Zip и Lambdas
Пример кода:

list1 = [4, 2, 3, 1]
list2 = ['d', 'b', 'c', 'a']
sorted_lists = zip(*sorted(zip(list1, list2), key=lambda x: x[0]))
sorted_list1, sorted_list2 = map(list, sorted_lists)
print(sorted_list1)  # Output: [1, 2, 3, 4]
print(sorted_list2)  # Output: ['a', 'b', 'c', 'd']

Метод 3: сортировка с помощью Enumerate и Sorted
Пример кода:

list1 = [4, 2, 3, 1]
list2 = ['d', 'b', 'c', 'a']
sorted_lists = zip(*sorted(enumerate(list1), key=lambda x: x[1]))
sorted_list1, sorted_list2 = ([x[1] for x in sorted_lists], [list2[x[0]] for x in sorted_lists])
print(sorted_list1)  # Output: [1, 2, 3, 4]
print(sorted_list2)  # Output: ['a', 'b', 'c', 'd']

Метод 4. Сортировка с помощью DataFrame Pandas
Пример кода:

import pandas as pd
data = {'list1': [4, 2, 3, 1], 'list2': ['d', 'b', 'c', 'a']}
df = pd.DataFrame(data)
sorted_df = df.sort_values(by='list1')
sorted_list1 = sorted_df['list1'].tolist()
sorted_list2 = sorted_df['list2'].tolist()
print(sorted_list1)  # Output: [1, 2, 3, 4]
print(sorted_list2)  # Output: ['a', 'b', 'c', 'd']

В этой статье мы рассмотрели четыре метода сортировки двух списков, ссылающихся друг на друга. Мы использовали разные методы, такие как zipи enumerate, а также алгоритмы сортировки, такие как sortedи DataFrame.sort_valuesиз библиотеки Pandas. Каждый метод достигает желаемого результата одновременной сортировки обоих списков. Поняв эти методы, вы будете хорошо подготовлены к реализации подобных сценариев в своих проектах.

Не забудьте выбрать метод, который лучше всего соответствует вашим требованиям и языку программирования, с которым вы работаете. Приятного кодирования!