Python – 按範圍包含排序


在需要根據範圍對列表進行排序時,將使用函式運用“abs”方法、“sum”方法和列表解析。

以下是對其進行演示 −

示例

 線上演示

def sum_range_incl(my_row):

   return sum([abs(element [1] - element [0]) for element in my_row if element [0] > i and element [0] < j and element [1] > i and element [1] < j])

my_list = [[(12, 4), (55, 10), (11, 16)], [(42, 14)], [(2, 5), (2, 28), (9, 16)], [(12, 6), (6, 13)]]

print("The list is :")
print(my_list)

i, j = 2, 15

my_list.sort(key=sum_range_incl)

print("The resultant list is :")
print(my_list)

輸出

The list is :
[[(12, 4), (55, 10), (11, 16)], [(42, 14)], [(2, 5), (2, 28), (9, 16)], [(12, 6), (6, 13)]]
The resultant list is :
[[(42, 14)], [(2, 5), (2, 28), (9, 16)], [(12, 4), (55, 10), (11, 16)], [(12, 6), (6, 13)]]

說明

  • 定義名為“sum_range_incl”的方法,該方法將元組列表作為引數。

  • 利用列表解析遍歷該列表。

  • 確定列表中所有元素的第一個元素和第零個元素之間的絕對差,並對第零個元素與特定整數進行比較。

  • 此值的和作為函式的輸出返回。

  • 定義一個元組列表,並將其顯示在控制檯上。

  • 為兩個整數“I”和“j”定義值。

  • 利用 sort 方法透過傳遞先前定義的方法作為引數對列表進行排序。

  • 輸出將顯示在控制檯上。

更新於:04-Sep-2021

429 次瀏覽

開啟您的 職業生涯

完成課程,獲得認證

開始
廣告
© . All rights reserved.