【问题标题】:How to sort an array of array by element closest to 0如何按最接近 0 的元素对数组的数组进行排序
【发布时间】:2022-11-21 02:04:14
【问题描述】:

我有一个整数数组数组,例如:

i = [[1,3,8],[1,7,4],[1,9,1],[1,0,3],[1,11,-2]]

我想要这样的结果:

i = [[1,9,1],[1,11,-2],[1,0,3],[1,7,4],[1,3,8]]

其中“i”数组以 i[x][2] 最接近 0 的方式排序。

我试图更改 lambda:sorted_i = sorted(i, key=lambda x: x[2]) 但没有成功。

【问题讨论】:

  • 给一个适当的解释,否则再举几个例子。

标签: python sorting


【解决方案1】:

你想要的是:

sorted_i = sorted(i, key=lambda x: abs(x[2]))

它比较绝对值(将负值转换为正值)。

【讨论】:

    【解决方案2】:

    你也可以这样做如果别的在一行x[2] if x[2] > 0 else -x[2]

    arr = [[1, 3, 8], [1, 7, 4], [1, 9, 1], [1, 0, 3], [1, 11, -2]]
    sorted_arr = sorted(arr, key=lambda x: x[2] if x[2] > 0 else -x[2])
    print(sorted_arr) #[[1, 9, 1], [1, 11, -2], [1, 0, 3], [1, 7, 4], [1, 3, 8]]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-11
      • 2022-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-18
      • 2016-02-01
      相关资源
      最近更新 更多