假设我有:
调用
有时候,人们会以不同的方式表述问题:给定两个列表,他们想要使用一个列表来确定另一个列表的排序顺序——即,按照与
另请参见:如何按照另一个列表中的元素出现位置对列表进行排序? - 这是人们希望根据另一个列表对一个列表进行排序的另一种常见方式。在试图关闭重复问题之前,请特别注意检查OP想要什么。一个关键线索:这些列表需要具有相同的长度吗?
list1 = [3, 2, 4, 1, 1]
list2 = ['three', 'two', 'four', 'one', 'one2']
调用
list1.sort()
会对其进行排序,结果为 [1, 1, 2, 3, 4]
。但是,我能否让 list2
与之同步重新排列,以获得像这样的结果?list1 = [1, 1, 2, 3, 4]
list2 = ['one', 'one2', 'two', 'three', 'four']
有时候,人们会以不同的方式表述问题:给定两个列表,他们想要使用一个列表来确定另一个列表的排序顺序——即,按照与
list1
中相应值描述的顺序对list2
进行排序。诀窍在于这等价于对“键”值(list1
)进行排序,然后以同样的方式重新排列list2
。换句话说,就是完全按照此处所描述的方式操作。虽然其他问题的一些答案在此之后丢弃了“已排序的键”。另请参见:如何按照另一个列表中的元素出现位置对列表进行排序? - 这是人们希望根据另一个列表对一个列表进行排序的另一种常见方式。在试图关闭重复问题之前,请特别注意检查OP想要什么。一个关键线索:这些列表需要具有相同的长度吗?