Python 我能';t使用sorted函数对两个元素的元组列表按降序数字顺序进行排序,如果出现平局,则按升序字母顺序进行排序
我使用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(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)]
只需确保先按字母顺序排序,然后再按第二个键进行排序。它起作用了。非常感谢,先生。你有关于这个功能的有用文档吗?你可以参考文档:它工作了。非常感谢,先生。您是否有任何关于该功能的有用文档?您可以参考文档: