Сортировать связанные списки

Три списка a = [Car, Apple, Glass, Table] и b = [0.12, 123, 5, 11411] и с = [0.8, 42, 0.46, 55] Значения второго/третьего списка равны значениям из первого. Как отсортировать список а по алфавиту, чтобы значения b и с сохранили соответствие и тоже отсортировались.

Результат:

a = [Apple, Car, Glass, Table]
b = [123, 0.12, 5, 11411]
с = [42, 0.8, 0.46, 55]

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

Автор решения: CrazyElf

Выглядит шаманством, но основное тут - использование zip и сортировка с ключом. Ну и ещё пришлось кортежи обратно в списки превращать после zip(*:

a = ['Car', 'Apple', 'Glass', 'Table']
b = [0.12, 123, 5, 11411]
c = [0.8, 42, 0.46, 55]
abc = sorted(zip(a, b, c), key=lambda x: x[0])
a, b, c = list(map(list, zip(*abc)))
print(a, b, c, sep='\n')

Вывод:

['Apple', 'Car', 'Glass', 'Table']
[123, 0.12, 5, 11411]
[42, 0.8, 0.46, 55]
→ Ссылка