本文介绍了Python 3列表:如何根据数字然后按字母对[('NJ',81),('CA',81),('DC',52)]进行排序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如果我的清单是[('IL', 36), ('NJ', 81), ('CA', 81), ('DC', 52), ('TX', 39)]
,
如何对它进行排序,这样我的结果将是[('CA', 81), ('NJ', 81), ('DC', 52), ('TX', 39), ('IL', 36)]
?
how can I sort it so that my result will be[('CA', 81), ('NJ', 81), ('DC', 52), ('TX', 39), ('IL', 36)]
?
推荐答案
简单明了:
your_list.sort(key=lambda e: (-e[1], e[0]))
例如
>>> your_list = [('IL', 36), ('NJ', 81), ('CA', 81), ('DC', 52), ('TX', 39)]
>>> your_list.sort(key=lambda e: (-e[1], e[0]))
>>> your_list
[('CA', 81), ('NJ', 81), ('DC', 52), ('TX', 39), ('IL', 36)]
请注意,以上内容对列表进行了排序.如果要将其包装在函数中而不修改原始列表,请使用sorted
Note that the above sorts the list in place. If you want to wrap this in a function and not modify the original list, use sorted
def your_sort(your_list):
return sorted(your_list, key=lambda e: (-e[1], e[0]))
这篇关于Python 3列表:如何根据数字然后按字母对[('NJ',81),('CA',81),('DC',52)]进行排序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!