【问题标题】:Python sorting arrays by element contained?Python按包含的元素对数组进行排序?
【发布时间】:2019-11-15 04:08:04
【问题描述】:

我正在寻找一个列表列表并按包含列表中包含的元素对它们进行排序。为了澄清起见,我想要一个像这样的代码列表

myList = []
myList.append([1, 2, 3])
myList.append([1, 1, 1])
myList.append([1, 3, 2])

然后按每个包含列表的最后一个元素对列表的元素进行排序,最终看起来像这样

           |
myList = ( v
    [1, 2, 3],
    [1, 3, 2],
    [1, 1, 1])

我还在这个项目中导入了 numpy 库。我正在为 numpy 寻找 argsort,但我认为您不能沿元素的轴对其进行排序

【问题讨论】:

标签: python arrays python-3.x list numpy


【解决方案1】:

首先不要使用list作为变量名,因为它是python内置函数之一,其次你可以使用sorted函数按位置排序

l = []
l.append([1, 2, 3])
l.append([1, 1, 1])
l.append([1, 3, 2])
sorted(l,key = lambda x : x[2])
#[[1, 1, 1], [1, 3, 2], [1, 2, 3]]

【讨论】:

  • 我不知道这个。谢谢,正是我想要的。
  • lambda x : x[-1] 会更通用地选择最后一个元素
  • l (el) 不是一个好的变量名。它看起来像许多字体中的“1”(一个)。可以使用operator库:my_list.sort(key=operator.itemgetter(-1))
猜你喜欢
  • 2023-03-22
  • 2019-05-30
  • 2019-09-01
  • 2011-02-24
  • 2016-04-27
  • 1970-01-01
  • 1970-01-01
  • 2010-09-18
  • 1970-01-01
相关资源
最近更新 更多