基于另一个数组对数组排序

2024-04-26 12:10:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两张单子

A=[5,2,3,4,1]

B=[3,1,5]

我希望使用A对B进行排序,以便输出反映: [5,3,1]

我如何实现这一点?在


Tags: 排序单子
3条回答

对于就地分拣,应该这样做:

B.sort(key=A.index)

否则你可以这样做(根据乔恩·克莱门茨……):

^{pr2}$

工作原理:

key参数是一个函数(在这里使用lambdas很常见…)列表根据函数的输出进行排序。以下示例说明:

A = [{'a':100,'b':10},{'a':56,'b':100},{'a':90,'b':90}]
A.sort(key=lambda x:x['a']) 
print(A)
A.sort(key=lambda x:x['b']) 
print(A)

该输出:

[{'a':56,'b':100},{'a':90,'b':90},{'a':100,'b':10}]
[{'a':100,'b':10},{'a':90,'b':90},{'a':56,'b':100}]

你可以用。。。但一切都取决于你在追求什么-还有其他方法。。。

>>> a = [5, 2, 3, 4, 1]
>>> b=  [3, 1, 5]
>>> sorted(b, key=a.index)
[5, 3, 1]

或者正如@Manan所指出的那样-您可以使用a.sort(...)进行就地排序

如果我对你的问题的理解是正确的,你想做以下事情:

A = [5,2,3,4,1]
B = [3,1,5]
C = []
for i in range(len(A)):
    if A[i] in B:
        C += [A[i]]

print C # [5, 3, 1]

希望这有帮助。

相关问题 更多 >