最近开始用Python刷题 以下方法和函数都是基于Python3 记录一下常用的排序函数 常用的容器等 学到一些新的也会加进去
创建三维 的 l * m * n 数组
L [ [ [0] * n for i in range(m) ] for i in range(l) ]
list排序
#list为二维以上数组 且list为2维以上的数组 会按照l[i]的长度 l[0]的大小 l[1]的大小降序排序 优先级依次为l的长度 l[0],l[1]的大小升序排序 l [[1,2,3],[1,1,3],[2,1,2],[1,1,1,1]] l.sort(key lambda x :(len(x),x[0],x[1]) #输出为 [[1, 1, 3], [1, 2, 3], [2, 1, 2], [1, 1, 1, 1]] #排序时可以选择加上 参数 revrese,即为按lambda设置的参数倒序输出 l.sort(key lambda x:(len(x),x[0],x[1]),reverse True) #输出为 [[1, 1, 1, 1], [2, 1, 2], [1, 2, 3], [1, 1, 3]] l.sort(key itemgetter(0,1)) print(l) #以上述的结果按第一列第二列的值进行排序 排序的结果为 [[1, 1, 1, 1], [1, 1, 3], [1, 2, 3], [2, 1, 2]]
字典排序
#字典中的函数
d { a :12, b :23, aa :13, bad :23}
print(d.keys()),print(d.values())
#输出为 dict_keys([ a , b , aa , bad ]) dict_values([12, 23, 13, 23])
print(d.items())
#输出以字典d键值对的元祖 dict_items([( a , 12), ( b , 23), ( aa , 13), ( bad , 23)])
print(d.get(1),d.get( a ))
#输出为 None 12
#对字典排序 字典没有sort方法
print(sorted(d))
#默认对d的键进行排序 逆序输出 输出为 [ a , aa , b , bad ]
print(sorted(d.values))
#对d的值进行排序 逆序输出 输出为 [12, 13, 23, 23]
t sorted(d.items(),key lambda x:x[0])
print(t)
#以d.items()为对象排序 按照键的值升序排序 输出为元组 结果为 [( a , 12), ( aa , 13), ( b , 23), ( bad , 23)]
from operator import itemgetter
print(sorted(d.items(),key itemgetter(0)))
#itemgetter(0) 获取key 按key值排序 与lambda类似 同样也可以进行多值排序 在itemgetter中加入(0,1) 输出为元组 结果为 [( a , 12), ( aa , 13), ( b , 23), ( bad , 23)]



