python3排序sorted(key=lambda)
当待排序列表的元素由多字段构成时,我们可以通过sorted(iterable,key,reverse)的参数key来制定我们根据那个字段对列表元素进行排序。
key=lambda 元素: 元素[字段索引]
例如:想对元素第二个字段排序,则
key=lambda y: y[1] 备注:这里y可以是任意字母,等同key=lambda x: x[1]
看几个简单的例子。
listA = [3, 6, 1, 0, 10, 8, 9]
print(sorted(listA))
listB = ['g', 'e', 't', 'b', 'a']
print(sorted(listB))
print(sorted(listB, key=lambda y: y[0]))
listC = [('e', 4), ('o', 2), ('!', 5), ('v', 3), ('l', 1)]
print(sorted(listC, key=lambda x: x[1]))
#结果一
[0, 1, 3, 6, 8, 9, 10]
#结果二
['a', 'b', 'e', 'g', 't']
['a', 'b', 'e', 'g', 't']
#结果三
[('l', 1), ('o', 2), ('v', 3), ('e', 4), ('!', 5)]
也就是x:x[]字母没有什么限制,可以随意修改,排序方式按照中括号里面的维度进行排序,记住,0是第一维度,
另外 讲讲sorted()函数的用法
sort 与 sorted 区别:
sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作
sorted(key,reverse=True or Flase)在key后面可以指定一个参数,就是正序和降序的选择
reverse – 排序规则,reverse = True 降序 , reverse = False 升序(默认)