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 次浏览

开启您的 职业生涯

完成课程,获得认证

开始
广告