Python 基于列表中的相同值对列表进行排序
(使用Python 3) 我想按较小列表中的值和字符串对列表进行排序,并按如下方式打印: (这只是我尝试做的一个简化示例)Python 基于列表中的相同值对列表进行排序,python,python-3.x,list,sorting,Python,Python 3.x,List,Sorting,(使用Python 3) 我想按较小列表中的值和字符串对列表进行排序,并按如下方式打印: (这只是我尝试做的一个简化示例) a 4 a 3 b 3 C3 a 2 b 2 C2 d 2 a 1 b 1 C1 d 1 在我的代码中,我使用了 my_list=sorted(mylist,key=itemgetter(1),reverse=True) 并且得到了类似于 [[a',4],'c',3],'b',3],'a',3],'d',2],'c',2],'b',2],'a',2],'d',1],'c'
a 4
a 3
b 3
C3
a 2
b 2
C2
d 2
a 1
b 1
C1
d 1
在我的代码中,我使用了
my_list=sorted(mylist,key=itemgetter(1),reverse=True)
并且得到了类似于
[[a',4],'c',3],'b',3],'a',3],'d',2],'c',2],'b',2],'a',2],'d',1],'c',1],'b',1],'a',1]
正如你所看到的,我的值正在减少,就像我想要的那样。但是,较小列表中具有相同值的字符串按反字母顺序排列
有什么建议吗?Python使用了一种稳定的排序,因此对于领带,项目将按照它们出现的相同顺序显示。您可以对多个键进行排序,但这将反转这两个键的排序:
my_list = sorted(mylist, key=itemgetter(1, 0), reverse=True)
或者进行两次排序,因为您只需要反转其中一种排序:
my_list = sorted(sorted(my_list, key=itemgetter(0)), key=itemgetter(1), reverse=True)
哦,我没看到你不想让字母倒转,你可以加倍排序