gpt4 book ai didi

python - 在 Python 中按任意数量的条件排序

转载 作者:太空宇宙 更新时间:2023-11-04 07:16:40 24 4
gpt4 key购买 nike

假设我有一个数据表,我希望能够从按某些条件(如 SQL)排序的表中返回数据。问题是,我不知道我需要根据多少东西来排序,而 ORDER BY 命令后面可能只跟一个列名,或者两个,或者 100 个。

我看过其他答案:

s = sorted(s, key = lambda x: (x[1], x[2]))

...但是元组参数是硬编码的,不是在运行时创建的。我希望能够做这样的事情:

# Build list of columns to sort by, in ascending order of priority
orderings = [0, 2, ...]
s = sorted(s, key = lambda x: orderings)

这可能吗?我还有哪些其他选择?

最佳答案

一种简单的方法类似于您已有的方法:

s = sorted(s, key = lambda x: [x[i] for i in orderings])

否则你可以简单地多次排序。 Python 排序是稳定的,这意味着比较相等的任何元素都将保持其原始顺序。通过从最不重要的键到最重要的键进行多次排序,您会发现最终结果正是您所需要的。

关于python - 在 Python 中按任意数量的条件排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41994101/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com