python sorted函数(比较大小)

students = [('john', 'A', 15), ('jane', 'B', 12), ('dave','B', 10)]
print(sorted(students,key=lambda s: s[0]))
key指定一个接收一个参数的函数,这个函数用于从每个元素中提取一个用于比较的关键字。默认值为None

python sorted函数(比较大小)_第1张图片
image.png

例子


返回元组类型进行比较
l=[1,2,3,6.1,62.3,-1,-6.1,-7,-5.2]
sorted(l,key=lambda x:(x<1,isinstance(x,float),abs(x)))

为啥会这样呢?默认不是应该按升序排列。
仔细看 我们lambda返回的是一个元祖,(布尔,布尔,绝对值)
由于key函数主要作用是根据我们自己的要求,取出指定的元素来进行排序,不过我们现在返回的是一个元祖,所以我们首先按布尔进行排序,当有相同的我们在往后面一个元素找,然后进行排序,所以就变成这样了。

python sorted函数(比较大小)_第2张图片
直接返回当前元素进行比较

你可能感兴趣的:(python sorted函数(比较大小))