Python 排序,第一个 key 降序,如果相同,第二个 key 升序,这种是不是只能硬写? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生的内容
whx20202
V2EX    程序员

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

  •  
  •   whx20202 2017-03-28 11:22:20 +08:00 5056 次点击
    这是一个创建于 3151 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    https://gist.github.com/phith0n/20ad17cbd487a833ad3022d366d63f04
    KIDJourney
        15
    KIDJourney  
       2017-03-28 17:36:30 +08:00
    @mxi1 这是个锤子的语法糖啊。

    你觉得这个是语法糖吗。

    https://gist.github.com/KIDJourney/0ec45fd79c049b21b9911b9b36b218f8
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     920 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 20:09 PVG 04:09 LAX 12:09 JFK 15:09
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86