两个列表排序后取另一个列表对应的值

有两个列表a,b 一一对应,如何将a从小到大排序后输出对应b的值呢

用zip()函数把a,b捆绑到一起

>>> a = [2,1,4,3]
>>> b = [4,2,8,6]
>>> d = list(zip(a,b))
>>> d
[(2, 4), (1, 2), (4, 8), (3, 6)]
>>> sorted(d)
[(1, 2), (2, 4), (3, 6), (4, 8)]
>>> [i[1] for i in sorted(d)]
[2, 4, 6, 8]

是这个意思?


a = [1,8,4,2,5]
b = ['a','b','c','d']

c = [[n[0],n[1]] for n in zip(a,b)]
c.sort()
for x in c:
    print(x[0], ":", x[1])