python3 怎么取字典里最后一个 key - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
skyshine725
V2EX    问与答

python3 怎么取字典里最后一个 key

  •  
  •   skyshine725 2018-10-28 16:10:52 +08:00 8776 次点击
    这是一个创建于 2551 天前的主题,其中的信息可能已经有所发展或是发生改变。
    d = {19: 7, 31: 6, 28: 5, 16: 5, 32: 5, 2: 4, 24: 4, 29: 4, 6: 4, 18: 4, 15: 4, 12: 4}
    字典是排序好的,实际会有几千个,但要用的只是最后一个 key。
    怎么取最后这个 key 呢。
    第 1 条附言    2018-10-29 12:05:07 +08:00
    我就是用 collections.Counter 排序的。
    排序后字典中 value 是按降序的,它在我这里表示出现最少的概率,,
    所以我只要最后一个 key (就是出现概率最少的 key )
    19 条回复    2018-10-29 13:24:09 +08:00
    lhx2008
        1
    lhx2008  
       2018-10-28 16:13:18 +08:00
    dict.keys()[-1]
    Qzier
        2
    Qzier  
       2018-10-28 16:24:42 +08:00 via iPhone
    字典是无序的
    0ZXYDDu796nVCFxq
        3
    0ZXYDDu796nVCFxq  
       2018-10-28 16:27:37 +08:00 via Android
    3.6 开始是有序的,但不保证顺序固定
    Trim21
        4
    Trim21  
       2018-10-28 16:31:15 +08:00
    @gstqc #3 3.7 开始已经保证了
    Osk
        5
    Osk  
       2018-10-28 17:45:29 +08:00
    sorted(dict)[-1] ???

    这样就不用依赖特定 python 版本的实现了.
    Yourshell
        6
    Yourshell  
       2018-10-28 17:50:14 +08:00
    你知道怎么排序不知道怎么取最后一个也是神奇
    ppyybb
        7
    ppyybb  
       2018-10-28 18:13:36 +08:00 via iPhone
    怎么定义最后:
    1 最后放进去的
    2 按照 key 排序最后一个

    如果是 1 的话那么自己封装一个,是 2 依赖 python 版本,楼上已经讲的很清楚了
    jingniao
        8
    jingniao  
       2018-10-28 18:23:20 +08:00 via Android
    3.7 保证的是最后的是放进去的顺序吧
    holyghost
        9
    holyghost  
       2018-10-28 18:27:43 +08:00
    你需要一个 PHP
    Wincer
        10
    Wincer  
       2018-10-28 18:50:43 +08:00 via Android
    不要用字典,字典是无序的,用 orderdict
    veightz
        11
    veightz  
       2018-10-28 19:11:08 +08:00 via Android   2
    看到下面诸多评论,我对这门语言感到更窒息了。。
    ericls
        12
    ericls  
       2018-10-28 20:41:05 +08:00 via iPhone
    @Trim21 只是 cpython 保证吧?
    thinker3
        13
    thinker3  
       2018-10-28 21:02:09 +08:00
    @veightz 不会用而已,取字典里最后一个 key 是伪需求
    sikariba
        14
    sikariba  
       2018-10-28 21:30:55 +08:00
    @ericls #12 貌似 PyPy 很早就有了,CPython 从 3.6 开始支持。现在从 3.7 开始是整个 python 的 language feature 了
    SuperMild
        15
    SuperMild  
       2018-10-28 23:22:39 +08:00
    python 3.7 保证的顺序是 LIFO, 这与楼主所说的“排序”可能不是一回事,楼主说的“最后一个”不知道具体是指什么顺序的“最后”。
    xschaoya
        16
    xschaoya  
       2018-10-29 09:39:44 +08:00 via Android
    collections 模块了解一下,有序字典结构
    skyshine725
        17
    skyshine725  
    OP
       2018-10-29 12:11:13 +08:00
    dict.keys()[-1]
    TypeError: 'dict_keys' object does not support indexing
    dbw9580
        18
    dbw9580  
       2018-10-29 12:26:08 +08:00 via Android   1
    skyshine725
        19
    skyshine725  
    OP
       2018-10-29 13:24:09 +08:00
    你那什么网址,打开乱七八糟的网站
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3001 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 13:05 PVG 21:05 LAX 06:05 JFK 09:05
    Do have faith in what you're dong.
    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