【问题标题】:Python Sorting with lambda使用 lambda 进行 Python 排序
【发布时间】:2019-11-18 19:18:44
【问题描述】:

我是 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]

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

【问题讨论】:

标签: python


【解决方案1】:

说说你用过的具体例子

A = [3, 2, 4, 1]

N = len(A) 。 # N = 4

B = sorted(range(N), key = lambda i: A[i]) # sorted([0,1,2,3], key= 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]

【讨论】:

    【解决方案2】:

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

    在你的情况下 - 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] 的结果。

    【讨论】:

      猜你喜欢
      • 2021-10-03
      • 2011-04-15
      • 2019-11-26
      • 2020-06-15
      • 1970-01-01
      • 1970-01-01
      • 2022-01-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多