Python - 按 K 倍数对行进行排序

当需要按 K 的倍数对行进行排序时,定义了一种使用列表推导式和模运算符的方法。

以下是相同的演示 -

示例

def multiple_sort_val(row):
   return len([ele for ele in row if ele % K == 0])

my_list = [[11, 44, 7, 11], [7, 5, 44, 11], [11, 6, 35, 44], [92, 92, 5]]

print("名单是:")
print(my_list)

K = 11
print("K 的值为 ")
print(K)

my_list.sort(key=multiple_sort_val)

print("结果列表是:")
print(my_list)
输出结果
名单是:
[[11, 44, 7, 11], [7, 5, 44, 11], [11, 6, 35, 44], [92, 92, 5]]
K 的值为
11
结果列表是:
[[92, 92, 5], [7, 5, 44, 11], [11, 6, 35, 44], [11, 44, 7, 11]]

解释

  • 定义了一个将列表作为参数的方法。

  • 它使用列表推导和 'len' 方法来检查每个列表除以特定的 K 值的余数是否为 0。

  • 此列表的大小作为输出返回。

  • 在该方法之外,定义了一个列表列表并显示在控制台上。

  • K 的值已定义并显示在控制台上。

  • 通过将键指定为先前定义的方法,使用 'sort' 方法对列表进行排序。

  • 这是显示在控制台上的输出。