V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
skyshine725
V2EX  ›  问与答

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

  •  
  •   skyshine725 · 2018-10-28 16:10:52 +08:00 · 8304 次点击
    这是一个创建于 2004 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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
    字典是无序的
    gstqc
        3
    gstqc  
       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   ·   我们的愿景   ·   实用小工具   ·   5743 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 02:42 · PVG 10:42 · LAX 19:42 · JFK 22:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.