假设我有一个包含k个元素的列表A,还有一个同样有k个元素的列表B。我想要对列表A进行排序,同时也想以相同的方式对列表B进行排列。
例如:
例如:
A = [2,3,1,4]
B = [5,6,7,8]
排序后的A:
A = [1,2,3,4]
B = [7,5,6,8]
这里有一种方法:
>>> A = [2,3,1,4]
>>> B = [5,6,7,8]
>>> A, B = zip(*sorted(zip(A, B)))
>>> list(A)
[1, 2, 3, 4]
>>> list(B)
[7, 5, 6, 8]
简而言之:
A
和 B
打包成一对列表;A
和 B
;如果你喜欢一行代码:
A, B = map(list, zip(*sorted(zip(A, B))))
zip(*)
可以撤销第一个zip
:https://dev59.com/1mYr5IYBdhLWcg3wfaMA - NPE您可以尝试以下操作:
>>> A = [2,3,1,4]
>>> B = [5,6,7,8]
>>>
>>> AB = zip(A, B)
>>> AB.sort()
>>> A[:] = [t[0] for t in AB]
>>> B[:] = [t[1] for t in AB]
>>> A
[1, 2, 3, 4]
>>> B
[7, 5, 6, 8]
[(2,5),(3,6),(1,7),(4,8)]
),并按每个元组的第一个元素对该列表进行排序。然后从这个排序好的列表中检索所需的A
和B
。
A
和B
两个变量。另一个问题没有涉及到这一点。 - NPE