【问题标题】:How to sort 2D list elements in python?如何在python中对二维列表元素进行排序?
【发布时间】:2020-05-26 11:18:24
【问题描述】:

我需要知道如何在 python 中对列表元素进行排序而不改变它们的位置。

    a = [[5, 4, 5], [4, 5, 6], [2, 8, 2], [5, 2, 2]]
    b = [[3, 2, 4], [3, 6, 7], [3, 6, 0], [7, 2, 1]]
    c = [[x + y for x, y in zip(s1, s2)] for s1, s2 in zip(a, b)]
    c.sort(key=lambda x: x[1])
    c.reverse()
    for c in c:
        print(c)

我尝试使用 lambda,但它按第一个数字对它们进行排序,从而改变了顺序。 我需要对数组 c 进行排序,使其看起来像这样:

Input: c = [[5, 4, 5], [4, 5, 6], [2, 8, 2], [5, 2, 2]]
Output: c = [[4, 5, 5], [4, 5, 6], [2, 2, 8], [2, 2, 5]]

我希望我说得足够清楚,感谢任何帮助

【问题讨论】:

    标签: python arrays sorting


    【解决方案1】:

    您可以在原始列表理解中使用内部列表理解上的sorted 执行此操作。

    >>> [sorted(i+j for i, j in zip(s1, s2)) for s1, s2 in zip(a, b)]
    [[6, 8, 9], [7, 11, 13], [2, 5, 14], [3, 4, 12]]
    

    【讨论】:

      【解决方案2】:
      for item in a:
          item.sort()
      

      【讨论】:

        【解决方案3】:

        你可以试试这个:

        c = [sorted(x) for x in a]
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-07-22
          • 1970-01-01
          • 2021-10-16
          • 2021-11-26
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多