当需要根据范围对列表进行排序时,使用函数使用“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("名单是:") print(my_list) i, j = 2, 15 my_list.sort(key=sum_range_incl) print("结果列表是:") print(my_list)输出结果
名单是: [[(12, 4), (55, 10), (11, 16)], [(42, 14)], [(2, 5), (2, 28), (9, 16)], [(12, 6), (6, 13)]] 结果列表是: [[(42, 14)], [(2, 5), (2, 28), (9, 16)], [(12, 4), (55, 10), (11, 16)], [(12, 6), (6, 13)]]
定义了一个名为“sum_range_incl”的方法,它将元组列表作为参数。
使用列表理解来迭代列表。
确定列表中所有元素的第一个和第零个元素之间的绝对差异,并将第零个元素与特定整数进行比较。
该值的总和作为函数的输出返回。
元组列表的列表被定义并显示在控制台上。
定义了两个整数“I”和“j”的值。
通过将先前定义的方法作为参数传递,使用 sort 方法对列表进行排序。
输出显示在控制台上。