一、字典排序
1、利用key排序
d = {‘d1‘:2, ‘d2‘:4, ‘d4‘:1,‘d3‘:3,} for k in sorted(d): print(k,d[k])
d1 2
d2 4
d3 3
d4 1
2、利用value排序:__getitem__
d = {‘d1‘:2, ‘d2‘:4, ‘d4‘:1,‘d3‘:3,} for k in sorted(d,key=d.__getitem__): print(k,d[k])
d4 1
d1 2
d3 3
d2 4
反序:reverse=True
d = {‘d1‘:2, ‘d2‘:4, ‘d4‘:1,‘d3‘:3,} for k in sorted(d,key=d.__getitem__,reverse=True): print(k,d[k])
d2 4
d3 3
d1 2
d4 1
3、对dict_items进行排序
d = {‘d1‘:2, ‘d2‘:4, ‘d4‘:1,‘d3‘:3,} res = sorted(d.items(),key=lambda d:d[1],reverse=True) print(res)
[(‘d2‘, 4), (‘d3‘, 3), (‘d1‘, 2), (‘d4‘, 1)]
二、数组排序
1.使用内置函数list.sort()
1 class Solution: 2 """ 3 @param: A: an integer array 4 @return: 5 """ 6 def sortIntegers(self, A): 7 A.sort()
2.使用sorted() 函数
1 sorted([5, 2, 3, 1, 4]) 2 [1, 2, 3, 4, 5]
注:sorted()与list.sort()的不同:
1)list.sort() 方法返回none,sorted()返回结果
2)list.sort() 方法只可以供列表使用,而 sorted() 函数可以接受任意可迭代对象(iterable)
1 sorted({1: ‘D‘, 2: ‘B‘, 3: ‘B‘, 4: ‘E‘, 5: ‘A‘}) 2 [1, 2, 3, 4, 5]
3、指定位置元素排序
# 获取列表的第二个元素 def takeSecond(elem): return elem[1] # 列表 random = [(2, 2), (3, 4), (4, 1), (1, 3)] # 指定第二个元素排序 random.sort(key=takeSecond)
参考:
https://www.cnblogs.com/xnwjx/p/8352676.html
https://www.cnblogs.com/kilometerwine/p/9712329.html
原文:https://www.cnblogs.com/51python/p/12088760.html