本文介绍了根据另一个列表对元组列表进行排序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有两个列表.

list1 = [('ST00003', '009830'), ('ST00003', '005490'), ('ST00003', '005830'), ('ST00003', '251270'), ('ST00002', '111710')]
list2 = ['111710', '005830', '009830', '005490', '251270']


我想按list2的顺序对list1进行排序.

I want to sort list1 in order of list2.

list3 = [('ST00002', '111710'), ('ST00003', '005830'), ('ST00003', '009830'), ('ST00003', '005490'), ('ST00003', '251270')]

我想让它在排序时像 list3 一样.有什么好办法吗?

I want to make it like list3 when it's sorted. Is there any good way?

推荐答案

我做了一个中间的 dict ,它从数字字段映射到 list2 中的索引:

I did it my making an intermediate dict which maps from the number field to the index in list2:

list1 = [('ST00003', '009830'), ('ST00003', '005490'), ('ST00003', '005830'), ('ST00003', '251270'), ('ST00002', '111710')]
list2 = ['111710', '005830', '009830', '005490', '251270']

map2 = {value:index for index,value in enumerate(list2)}
print(map2)

list3 = sorted(list1, key = lambda i: map2[i[1]])
print(list3)

根据需要输出.

这篇关于根据另一个列表对元组列表进行排序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-13 13:06