Сортировка списка строковых данных относительно другого

Есть списки строковых данных (to_sort_a, to_sort_b), которые нужно отсортировать относительно origin_list, с оглядкой на этот список, так чтобы элементы имеющиеся в origin_list имели тот же самый порядок.

origin_list = ['АС7-АС9', 'АС9', 'АС10_0-2', 'АС11_0', 'АС12_0']
to_sort_a = ['АС', 'АС9', 'АС8', 'АС7-АС9']
to_sort_b = ['АС10_0-2', 'АС10_1-3', 'АС11_00', 'АС12_0', 'АС11_01', 'АС11_02', 'АС11_1', 'АС11_0']

По итогу должны получаться следующие списки:

sorted_a = ['АС', 'АС8', 'АС7', 'АС7-АС9', 'АС9']
sorted_b = ['АС10_0-2', 'АС11_0', 'АС12_0', 'АС10_1-3', 'АС11_00', 'АС11_01', 'АС11_02', 'АС11_1']

Ответы (1 шт):

Автор решения: Швеев Алексей

Ну если я правильно понял...

list1 = ["b", "c", "a"]
list2 = [1, 2, 3]
zipList = list(zip(list1, list2)) # [("b", 1), ("c", 2), ("a", 3)]
zipList.sort(key=lambda x: x[0]) # Сортируем по первому значению
list1, list2 = list(zip(*zipList)) # распаковываем
# list1 = ("a", "b", "c")
# list2 = (3, 1, 2)
→ Ссылка