簡體   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