Python课程第八天_下午_课程笔记(匿名函数Anonymous_Function)

Day_08_PM_Anonymous_Function

# 匿名函数: 没有名字的函数

# 普通函数
def f(n):
    return n**2

# =>匿名函数(只能表示比较简单的,复杂的建议还是普通函数)
f2 = lambda n : n**2
print(f2(3))


# sort()
l = [
    {'name': 'John', 'age': 19},
    {'name': 'Jack', 'age': 20},
    {'name': 'Tony', 'age': 40},
    {'name': 'Peter', 'age': 30},
    {'name': 'James', 'age': 60},
    {'name': 'Robert', 'age': 50}
]

# 普通函数
def fn(d):
    return d['age']
# l.sort(key=lambda d:d['age'])
l.sort(key=fn)
print(l)

print('*' * 100)
# 回调函数
# fn1:既是函数名称,也是指向该函数的一个变量
# 函数调用: 只要是指向该函数的变量都可以调用该函数
def fn1():
    print('hello')

fn1()


#回调
def fm(x, f):
    n = f(x)
    print(n)

def f6(m):
    m = m + 1
    return m*m

fm(10, f6)


l = [
    {'name': 'John', 'age': 19},
    {'name': 'Jack', 'age': 20},
    {'name': 'Tony', 'age': 40},
    {'name': 'Peter', 'age': 30},
    {'name': 'James', 'age': 60},
    {'name': 'Robert', 'age': 50}
]

# 封装一个sort功能的函数
def my_sort(ll, key=None):
    # 冒泡排序
    for i in range(len(ll)-1):
        for j in range(len(ll)-1-i):
            left = ll[j]
            right = ll[j+1]
            if key:
                left = key(left)
                right = key(right)
            if left > right:
                ll[j], ll[j+1] = ll[j+1], ll[j]




my_sort(l, key=lambda d:d['age'])
print(l)

l2 = [3,2,1,6,5,4]
my_sort(l2)
print(l2)

猜你喜欢

转载自blog.csdn.net/weixin_44298535/article/details/107672892