物理の駅 Physics station by 現役研究者

テクノロジーは共有されてこそ栄える

Python: 2つ以上のリストをあるリストで同時にソートする

以下の例では、list2でソートするためにd[1]と指定している。

list1 = ["a", "c", "b", "aa"]
list2 = [8, 2, 5, 6]
list3 = [1.4, 6.3, 4.5, 4.1]

print(list1, list2, list3)

list1, list2, list3 = zip(*sorted(zip(list1, list2, list3), key=lambda d: d[1]))

list1=list(list1)
list2=list(list2)
list3=list(list3)

print(list1, list2, list3)

出力

['a', 'c', 'b', 'aa'] [8, 2, 5, 6] [1.4, 6.3, 4.5, 4.1]
['c', 'b', 'aa', 'a'] [2, 5, 6, 8] [6.3, 4.5, 4.1, 1.4]