Python 我能';t使用sorted函数对两个元素的元组列表按降序数字顺序进行排序,如果出现平局,则按升序字母顺序进行排序

Python 我能';t使用sorted函数对两个元素的元组列表按降序数字顺序进行排序,如果出现平局,则按升序字母顺序进行排序,python,function,sorting,tuples,Python,Function,Sorting,Tuples,我使用sorted()函数对元组列表进行排序,如下所示。输出按第二个元素(数字)的降序排列。但我真正想要的是,在出现平局的情况下,按字母升序对元组进行排序 请帮忙 sorted(word_Count, key = itemgetter(1,0), reverse = True) 输出: [('butter', 2), ('was', 1), ('the', 1), ('of', 1), ('but', 1), ('bought', 1), ('bitter', 1), ('bit', 1),

我使用sorted()函数对元组列表进行排序,如下所示。输出按第二个元素(数字)的降序排列。但我真正想要的是,在出现平局的情况下,按字母升序对元组进行排序

请帮忙

sorted(word_Count, key = itemgetter(1,0), reverse = True)
输出:

[('butter', 2), ('was', 1), ('the', 1), ('of', 1), ('but', 1),
('bought', 1), ('bitter', 1), ('bit', 1), ('betty', 1), ('a', 1)]

谢谢

您可以将
sorted()
功能与as一起使用:


我的
lambda
函数返回元组为
(-x[1],x[0])
,表示按
x[1]
的降序对列表进行排序(
-
表示降序),如果匹配,则按
x[0]
的升序进行排序(无
-
符号表示升序)

您可以将
sorted()
功能与as一起使用:


我的
lambda
函数返回元组为
(-x[1],x[0])
,表示按
x[1]
的降序对列表进行排序(
-
表示降序),如果匹配,则按
x[0]
的升序进行排序(无
-
符号表示升序)

您可以使用
list.sort
两次,因为根据
list.sort
的docstring,它已就位:

L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN PLACE*;
所以,要对列表进行排序,您可以

>>> word_count.sort()
>>> word_count.sort(key=lambda x: x[1], reverse=True)
>>> print(word_count)
[('butter', 2), ('a', 1), ('betty', 1), ('bit', 1), ('bitter', 1),
 ('bought', 1), ('but', 1), ('of', 1), ('the', 1), ('was', 1)]

只需确保先按字母顺序排序,然后再按第二个键进行排序。

您可以使用
list.sort
两次,因为根据
list.sort
的docstring,它已就位:

L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN PLACE*;
所以,要对列表进行排序,您可以

>>> word_count.sort()
>>> word_count.sort(key=lambda x: x[1], reverse=True)
>>> print(word_count)
[('butter', 2), ('a', 1), ('betty', 1), ('bit', 1), ('bitter', 1),
 ('bought', 1), ('but', 1), ('of', 1), ('the', 1), ('was', 1)]

只需确保先按字母顺序排序,然后再按第二个键进行排序。

它起作用了。非常感谢,先生。你有关于这个功能的有用文档吗?你可以参考文档:它工作了。非常感谢,先生。您是否有任何关于该功能的有用文档?您可以参考文档: