day7自定义排序
""" sort 与 sorted 区别: sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。 list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。 sorted():默认是由小到大排序列表的元素。 排序排序:sorted(reverse=True) """ a = [36, 5, 12, 9, 21] # print(sorted(a)) # print(sorted(a,reverse=True)) # print(a) # # print(a.sort()) # print(a) """ 打印结果: [5, 9, 12, 21, 36] [36, 5, 12, 9, 21] None [5, 9, 12, 21, 36] """ # 默认是按照第一个名字进行排序的 score = [('Alice', 72), ('Candy', 90), ('Bob', 62)] print(sorted(score)) # [('Alice', 72), ('Bob', 62), ('Candy', 90)] """ sorted接受key参数,用来指定排序的字段,key的值是一个函数,接受待排序列表的元素作为参数,并返回对应需要排序的字段。 因此,sorted()函数也是高阶函数。 """ # 指定排序的字段为分值 def k(item): return item[1] # 按成绩排序,成绩是第二个字段 print(sorted(score, key=k)) """ 练习: 对字符串排序时,有时候忽略大小写排序更符合习惯。请利用sorted()高阶函数,实现忽略大小写排序的算法。 输入:['bob', 'about', 'Zoo', 'Credit'] 输出:['about', 'bob', 'Credit', 'Zoo'] """ names = ['bob', 'about', 'Zoo', 'Credit'] # l = [] # for name in names: # name = name.lower() # l.append(name) # print(l) def k(name): return name.lower() # 把元素转换为小写字母来排序,但是实际的返回还是原元素 s = sorted(names, key=k) print(s)