Discuss / Python / 再简单的代码也要亲手敲一遍

再简单的代码也要亲手敲一遍

Topic source

翁岚敏

#1 Created at ... [Delete] [Delete and Lock User]

do_sorted.py

from operator import itemgetter

L=['bob','about','Zoo','Credit']

print(sorted(L)) print(sorted(L,key=str.lower))

students =[('Bob',75),('Adam',92),('Bart',66),('Lisa',88)]

print(sorted(students, key =itemgetter(0))) print(sorted(students, key =lambda t:t[1])) print(sorted(students, key =itemgetter(1),reverse =True))

operator.itemgetter函数可以实现多维排序

LSF-1

#2 Created at ... [Delete] [Delete and Lock User]

请教一下,sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower)中key=str.lower为什么不是key=str.lower()

wongdir

#3 Created at ... [Delete] [Delete and Lock User]

@LSF-1 ''' sorted是高阶函数的缘故。

abs是绝对值函数数 abs(-10) #=10 a = abs a(-10) #=10

在高阶函数内部(高阶函数的参数可以是一个变量形式的函数,且必须要有一个,才能称为高阶函数)

sorted([36, 5, -12, 9, -21], key=a) 等价于 sorted([36, 5, -12, 9, -21], key=abs)

编写高阶函数,就是让函数的参数能够接收别的函数。

'''


  • 1

Reply