Сортировать связанные списки
Три списка 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]