sort,sorted排序 key=str.lower,key = len

names = ["Tom Cat", "Jerry Mouse", "Thomas Basper", "Gerald Din"]

res = sorted(names, key=len)  # 按照名字长度排序 ['Tom Cat', 'Gerald Jin', 'Jerry Mouse', 'Thomas Jasper']
res = sorted(names, key=lambda name: name.split()[-1])  # 按照famliy name 排序  ['Thomas Basper', 'Tom Cat', 'Gerald Din', 'Jerry Mouse']
res = sorted(names, key=lambda name: name[-1]) # 按照名字最后一个字排序 ['Jerry Mouse', 'Gerald Din', 'Thomas Basper', 'Tom Cat']
res = sorted(names, key=lambda n:len(n.split()[0]))   # 按照 Given name 长度排序 ['Tom Cat', 'Jerry Mouse', 'Thomas Basper', 'Gerald Din']
res = sorted(names, key=str.lower)

print(res)

'''
str.lower(x)返回字符串str的副本,全部字符小写
str.split(sep=None)返回一个列表,由str根据sep被分割的部分构成“a,b,c”.split(“,”)结果为['a', 'b', 'c']

为sorted 传参数key , 函数中传函数的语法,一般都是回调函数的语法。

传给key的应该是一个接受列表元素作为输入的函数,对于每一个列表元素,都调用该函数,函数的返回值作为排序依据

'''

  

传给key的应该是一个接受列表元素作为输入的函数,对于每一个列表元素,都调用该函数,函数的返回值作为排序依据

 sorted函数是高阶函数

在sort()可以接收一个关键字参数,key
key需要一个函数作为参数, 当设置了函数作为参数
每次都会以列表中的一个元素作为参数来调用函数,并且使用函数的返回值来比较元素的大小

 

posted @ 2023-05-18 22:37  sangern  阅读(86)  评论(0)    收藏  举报