相关疑难解决方法(0)

Python排序列表/升序然后降序

如果我有一个列表,其中包含一个看起来像这样的列表......

['a',1] ['a',2] ['a',3] ['b',1] ['b',2] ['b',3]
Run Code Online (Sandbox Code Playgroud)

我如何对它们进行排序,以便元素0按降序排序,元素1按升序排序,因此结果看起来像......

['b',1] ['b',2] ['b',3] ['a',1] ['a',2] ['a',3]
Run Code Online (Sandbox Code Playgroud)

使用itemgetter我可以在元素0上反向传递,但是我然后使用元素,当然它会破坏前一种类型.我不能做一个组合键,因为它需要先降序然后升序.

TIA,PK

python sorting

39
推荐指数
2
解决办法
3万
查看次数

如何为降序值编写Python排序键函数

在最近的Python版本中,将函数传递给sort()前一个cmp函数的举动使得我对某些对象执行复杂的排序变得更加棘手.

例如,我想用一组字符串tie-breaker字段对从最新到最旧的一组对象进行排序.所以我希望日期顺序相反,但字符串按其自然顺序排列.使用比较函数,我可以反转日期字段与字符串字段的比较.但是通过关键功能,我需要找到一些方法来反转/反转日期或字符串.

使用数字很简单(虽然难看) - 只是从某些东西中减去它们 - 但我是否必须找到类似的日期(从另一个日期减去它们并比较timedeltas?)和字符串(...我不知道我如何以与语言环境无关的方式改变他们的顺序).

我知道functools.cmp_to_key()它的存在,但它被描述为"主要用作转换为Python 3的程序的转换工具,其中不再支持比较函数".这意味着我应该能够用关键方法做我想做的事 - 但是怎么做?

python sorting

30
推荐指数
4
解决办法
1万
查看次数

标签 统计

python ×2

sorting ×2