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

2018-10-28 16:10:52 +08:00
 skyshine725
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 呢。
8498 次点击
所在节点    问与答
19 条回复
lhx2008
2018-10-28 16:13:18 +08:00
dict.keys()[-1]
Qzier
2018-10-28 16:24:42 +08:00
字典是无序的
0ZXYDDu796nVCFxq
2018-10-28 16:27:37 +08:00
3.6 开始是有序的,但不保证顺序固定
Trim21
2018-10-28 16:31:15 +08:00
@gstqc #3 3.7 开始已经保证了
Osk
2018-10-28 17:45:29 +08:00
sorted(dict)[-1] ???

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

如果是 1 的话那么自己封装一个,是 2 依赖 python 版本,楼上已经讲的很清楚了
jingniao
2018-10-28 18:23:20 +08:00
3.7 保证的是最后的是放进去的顺序吧
holyghost
2018-10-28 18:27:43 +08:00
你需要一个 PHP
Wincer
2018-10-28 18:50:43 +08:00
不要用字典,字典是无序的,用 orderdict
veightz
2018-10-28 19:11:08 +08:00
看到下面诸多评论,我对这门语言感到更窒息了。。
ericls
2018-10-28 20:41:05 +08:00
@Trim21 只是 cpython 保证吧?
thinker3
2018-10-28 21:02:09 +08:00
@veightz 不会用而已,取字典里最后一个 key 是伪需求
sikariba
2018-10-28 21:30:55 +08:00
@ericls #12 貌似 PyPy 很早就有了,CPython 从 3.6 开始支持。现在从 3.7 开始是整个 python 的 language feature 了
SuperMild
2018-10-28 23:22:39 +08:00
python 3.7 保证的顺序是 LIFO, 这与楼主所说的“排序”可能不是一回事,楼主说的“最后一个”不知道具体是指什么顺序的“最后”。
xschaoya
2018-10-29 09:39:44 +08:00
collections 模块了解一下,有序字典结构
skyshine725
2018-10-29 12:11:13 +08:00
dict.keys()[-1]
TypeError: 'dict_keys' object does not support indexing
dbw9580
2018-10-29 12:26:08 +08:00
skyshine725
2018-10-29 13:24:09 +08:00
你那什么网址,打开乱七八糟的网站

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/501916

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX