【问题标题】:How to sort an array in a array by the length of the array? [duplicate]如何按数组的长度对数组中的数组进行排序? [复制]
【发布时间】:2021-01-06 23:29:32
【问题描述】:

我有一个数组,其中包含:

[['test3', ['7']], ['test4', ['1']], ['test', ['2', '4']], ['test1', ['2', '4']], ['test2', ['5']]]

我不知道如何根据完整数组的数组中第二项(= 数组)的长度对其进行排序。 排序后应该是这样的:

[['test4', ['1']],  ['test2', ['5']], ['test3', ['7']], ['test', ['2', '4']], ['test1', ['2', '4']]]

如果有人知道如何按数组中的数字对其进行排序,那就太好了。

第一项不相关。

【问题讨论】:

  • 因为如果排序也能按数组 ['test3', ['7']] (=> 所以里面的 7)中的数字对它进行排序,那就太好了
  • 请从intro tour 重复on topichow to ask。 “告诉我如何解决这个编码问题”不是堆栈溢出问题。我们希望您做出诚实的尝试,然后然后就您的算法或技术提出一个具体的问题。 Stack Overflow 并不打算取代现有的文档和教程。任何 Python sort 教程都介绍了使用键进行排序。请在此处发布问题之前完成您的研究。
  • 对不起,我找不到任何东西 :(

标签: python arrays sorting


【解决方案1】:

您可以使用key,因此您可以使用以下代码:

l = [['test3', ['7']], ['test4', ['1']], ['test', ['2', '4']], ['test1', ['2', '4']], ['test2', ['5']]]
l.sort(key=lambda item: (len(item[1]), str(item[1][0])))

【讨论】:

  • 输出与问题中的预期输出不匹配。
  • @Selcuk 我更新了答案,我之前理解错了
  • 现在您的输入列表已被操纵以匹配输出。
  • @Selcuk 是的,现在输出有什么问题,如果我更改列表,它仍然可以工作吗?
  • 否,但您的输入与问题不同。您已修改输入,使其产生正确的输出。
猜你喜欢
  • 2010-10-02
  • 2021-04-23
  • 1970-01-01
  • 2022-10-06
  • 1970-01-01
  • 2017-04-02
  • 2021-12-23
  • 1970-01-01
  • 2019-11-14
相关资源
最近更新 更多