繁体   English   中英

Python 用 lambda 排序

[英]Python Sorting with lambda

我是 python 的新手,我有一个问题


A = [3,2,4,1]
N = len(A)
B = sorted(range(N), key = lambda i: A[i])
print(B)
output #[3, 1, 0, 2]

input #A = [7,2,4,1]
output #[3, 1, 2, 0]

我不明白 output?? 谁能给我解释一下?

说说你用过的具体例子

A = [3, 2, 4, 1]

N = 长度 (A)。 # N = 4

B = 排序(范围(N),键 = lambda i: A[i])# 排序([0,1,2,3],键= lambda i:A[i])

基本上,您正在尝试根据 [3,2,4,1] 的值 A[i] 对 [0,1,2,3] 进行排序

现在, A[3] < A[1] < A[0] < A[2]

所以你得到的答案是[3, 1, 0, 2]

在已sorted的 function 中,第一个元素是您要排序的项目。 如果可以的话,您可以对转换为大小为 4 的列表的生成器进行排序。排序 function 根据匿名 function 给出的值进行排序。

在您的情况下 - A = [3, 2, 4, 1]要排序的列表 - [0, 1, 2, 3] 每个元素的键[3, 2, 4, 1] 基本上你可以想象你根据第二个元素对[(0, 3), (1, 2), (2, 4), (3, 1)]排序,然后留下第一个元素,结果是[3, 1, 0, 2]你得到。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM