【发布时间】:2014-08-12 14:14:39
【问题描述】:
我一直在谷歌搜索和搜索,但我找不到答案。
我有一本字典,其中包含组中的人员,以及该组的分数,groups = {"john,alfred,willis":5, "james,connor":5}, ...。然而,人们可以同时分成两组。我想用这本词典做的是按人数和他们的分数对其进行排序。例如:
>>> groups = {"a,b,c":5, "d,e":6, "f,g,h,i":5, "j,k,l":6, "m,n":10, "a,d,f":5}
我需要按分数排序,然后按人数排序,然后按字母顺序作为最后的决胜局。没有重复的组,但是一个组可能拥有"a,b,c,d",另一个可能拥有"a,b,c,e"。高分胜低分,人多胜人少,字母顺序就是……字母顺序。
>>> print(mySort(groups))
"m,n", 10
"j,k,l", 6
"d,e", 6
"f,g,h,i", 5
"a,b,c", 5
"a,d,f", 5
输出格式不一定是这样,但最好是按照字典的方式格式化。
我尝试了几种不同的方法,包括用 , 拆分密钥,因为名称可以是任意长度,但因为 Python 不是我的第一语言,所以我觉得很难。
如何按值和键大小对字典进行排序?
编辑:我在我认为可以不用的问题中添加了另一部分。事实证明它是必要的......
【问题讨论】:
-
可能重复:stackoverflow.com/questions/613183 本质上,您无法对字典进行排序,只需以排序方式显示即可。
-
反对者,解释一下? @iwin,这是怎么重复的?
-
@iwin,精度是关键,我明白,但你确实收到了我所要求的基本要点,对吗?
-
我认为它与其他关于在 Python 中排序字典的问题非常接近,这些问题有很多很好的答案;不过,我并没有对你投反对票。
-
好的,我添加了那个条件,因为我们正在反转排序,我们需要用
-否定该值
标签: python sorting python-3.x dictionary