• 请不要在回答技术问题时复制粘贴 AI 生成的内容
whx20202
V2EX  ›  程序员

Python 排序,第一个 key 降序,如果相同,第二个 key 升序,这种是不是只能硬写?

  •  
  •   whx20202 · Mar 28, 2017 · 5661 views
    This topic created in 3509 days ago, the information mentioned may be changed or developed.

    突然想知道有没有什么简短的方法,在性能不是主要问题的时候

    百度了一下好像有个 DSU 能用一下

    15 replies  •  2017-03-28 17:36:30 +08:00
    Monad
    Monad
    Mar 28, 2017 via iPhone❤️1
    1
    想优雅而不考虑性能可以 sort 两次
    第一次随意 sort
    第二次 stable_sort
    kingmo888
    kingmo888
    Mar 28, 2017
    2
    好像说, pandas 多好。
    Lycnir
    Lycnir
    Mar 28, 2017
    3
    sorted 里面的 key 参数不能处理这个问题吗?
    ryd994
    ryd994
    Mar 28, 2017 via Android❤️1
    4
    活用 cmp 参数就行了,不需要两次
    python3 可以用 cmptokey 转换

    或者直接 key=(key1, -key2)仅限于 key 是数字的情况

    rtfm
    glasslion
    glasslion
    Mar 28, 2017
    5
    sorted(lst, key = lambda x: (x[0], -x[1])) 不就行了
    Finest
    Finest
    Mar 28, 2017
    6
    sorted(cmp=)不是有这个可以传函数进去吗?
    whx20202
    whx20202
    OP
    Mar 28, 2017
    7
    66666 各种方式 学到了
    wplct
    wplct
    Mar 28, 2017
    8
    python 都支持用方法排序了,想怎么样都可以啊
    mxi1
    mxi1
    Mar 28, 2017 via iPhone
    9
    前几天才在知乎上看到这个利用 sort 的 key 来实现多种排序方法的语法糖示例, https://www.zhihu.com/question/57470958/answer/153398323
    laike9m
    laike9m
    Mar 28, 2017❤️1
    10
    @mxi1 ヽ(✿゚▽゚)ノ
    KIDJourney
    KIDJourney
    Mar 28, 2017
    11
    为什么会有人把这个当成语法糖。
    mxi1
    mxi1
    Mar 28, 2017 via iPhone
    12
    @KIDJourney 估计是参考其他语言的设计来说的,比如 C#就有很多语法糖
    ryd994
    ryd994
    Mar 28, 2017 via Android
    13
    @mxi1 这不叫语法糖……… C++也是这样的啊
    phithon
    phithon
    Mar 28, 2017
    14
    曾用过的一个方法,好像并不简短,但每次要用的时候都会拿来用,方便

    https://gist.github.com/phith0n/20ad17cbd487a833ad3022d366d63f04
    KIDJourney
    KIDJourney
    Mar 28, 2017
    15
    @mxi1 这是个锤子的语法糖啊。

    你觉得这个是语法糖吗。

    https://gist.github.com/KIDJourney/0ec45fd79c049b21b9911b9b36b218f8
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1881 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 16:53 · PVG 00:53 · LAX 08:53 · JFK 11:53
    ♥ Do have faith in what you're doing.