【问题标题】:Python sorting a nested list with conditional comparisonPython使用条件比较对嵌套列表进行排序
【发布时间】:2017-02-27 02:03:25
【问题描述】:

我正在尝试对嵌套列表A 进行排序。 len(A) = n 和 len(A[i]) = d 对于所有 i。我想使用A[i] 的第一个元素进行排序。但是如果A[i][0] == A[j][0] 那么我想使用下一个元素进行排序,即A[i][1]。如果A[i][1] == A[j][1] 则使用下一个元素A[i][2],依此类推。

下面是n = 4 和d = 2 的示例。因为[3,6] 和[3,7] 的第一个元素相同,所以根据第二个元素进行比较。

A = [[3,7], [4,5], [3, 6], [5,1]]
A_sorted = [[3,6], [3,7], [4,5], [5,1]]

在 Python 2.7 中,我使用了自定义比较函数。 A.sort(cmp=comp_func)。但我试图在没有 cmp 参数选项的 Python 3 中执行此操作。所以我需要改用key 参数。如何在 Python 3 中实现这种自定义排序?

【问题讨论】:

  • A_sorted = sorted(A) 在 python2 和 python3 中都给出了所需的结果。不需要key 函数。

标签: python python-3.x sorting key


【解决方案1】:

这是默认的 Python 排序行为。您是否尝试过这样做但没有成功?

【讨论】:

    猜你喜欢
    • 2013-03-31
    • 1970-01-01
    • 1970-01-01
    • 2013-02-13
    • 2010-09-21
    • 2018-09-10
    • 2013-02-06
    相关资源
    最近更新 更多