【发布时间】:2015-04-12 12:45:27
【问题描述】:
这是对我之前的问题的扩展,得到了适当的回答,请参见此处: Sorting dictionary keys by value, then those with the same value alphabetically
我在字典中设置了用户和分数,因此键是“group.name”,值是他们的分数(例如“'3.Julie':'7' 是用户“Julie”第 3 组,得分为 7)。我已经知道如何按值排序,然后按键:
sorted(dictionary.items(), key=lambda t: t[::-1])
但是当它比较两个键时,我希望它忽略第一个字符/两个字符,以便具有相同分数的用户将按字母顺序排序(而目前,他们将按组排序,因为组号来了第一的)。在不更改命名约定的情况下,无论如何我可以实现这一点吗? (理想情况下,在 lambda 键中,几行就可以了,但如果超过 2-3 行就不值得了)
【问题讨论】:
-
key=lambda t: (t[1], t[0][2:])? -
@jonrsharpe 当我尝试这样做时,我得到一个“关键字 arg 之后的非关键字 arg”SyntaxError。
-
我看不出你有什么理由得到那个,除非你不小心把之前的
key丢了。 -
@jonrsharpe 从头开始,我省略了括号。它似乎工作正常,但是我使用 reverse=True,所以字母顺序是倒着的。有什么办法可以解决吗?
-
...不要使用
reverse=True?
标签: python sorting python-3.x dictionary lambda