【问题标题】:How to sort a Python List with a runtime defined amount of priorities如何使用运行时定义的优先级对 Python 列表进行排序
【发布时间】:2020-01-16 04:21:08
【问题描述】:

我想在 python 中找到一种方法来排序元组,优先考虑最低索引元素。这在python中可能吗?我过度概括了一个不同的问题,我对一个列表进行排序,优先级高于我事先不知道的值。 例如,如果我知道我的元组的长度,我可以这样做

sorted(myList, key=lambda n: (n[0],n[1]))

这里我知道 myList 是由具有 2 个元素的元组组成的,但我必须对其进行硬编码。我可以将其概括为基于具有 x 元素的元组的优先级排序吗?这是python中的伪代码思想,

sorted(myList, key=lambda n: n[i] for i in range(len(n)))

【问题讨论】:

  • lambda n: tuple(n)?
  • 只需定义item_priority(item)函数并编写您想要的任何代码,只要它为每个项目返回一个优先级值,然后使用sorted(myList, key=item_priority)
  • @Nf4r 我对 item_priority() 的外观感到困惑

标签: python list sorting lambda


【解决方案1】:

sorted 默认执行此操作;你甚至不需要key 参数。

>>> k = [(0, 1), (1, 1), (1, 0), (0, 0)]
>>> sorted(k)
[(0, 0), (0, 1), (1, 0), (1, 1)]

【讨论】:

  • 它对可变对象也像列表一样这样做吗?
  • @JoshuaSegal 我建议自己检查一下。会比等待实际答案更快。但是,是的。确实如此。
猜你喜欢
  • 2016-06-29
  • 1970-01-01
  • 2019-10-04
  • 2017-03-13
  • 1970-01-01
  • 2021-02-06
  • 2022-11-11
  • 2012-06-25
  • 1970-01-01
相关资源
最近更新 更多