匿名函数lambda和内置函数(sorted, filter, map, reduce)

'''匿名函数
lambda 参数:返回值

通常配合内置函数一起使用(sorted, map, filter, reduce)

sorted(Iterable, key=None,reverse=False)
    key是关键,排序规则,sorted会自动把可迭代对象中的每一个传递给key.
    并根据key返回的内容进行排序。
    
map(function, iterable)
    可以对可迭代对象中的每一个元素进行映射,分别执行function
    
filter(function, iterable)
    function:用来筛选的函数,在filter中会自动的把iterable中的元素传递给function.
    然后根据function返回的True或者False来判断是否保留此项数据。

reduce(function, iterable, initial)
    reduce函数会自动把可迭代对象中的每一个拿出来传递给function
    第一次传递两个值进去,然后把函数的返回值和下一个元素继续作为参数传递给function
    以此类推,最终得到function计算的结果。

'''
lst = [1, 5, 3, 4, 6]
lst2 = sorted(lst)
print(lst)  # [1, 5, 3, 4, 6]
print(lst2)  # [1, 3, 4, 5, 6]

dic = {1:"A", 3:"C", 2:"B"}
print(sorted(dic))  # 如果是字典,则返回排序过后的key 结果:[1, 2, 3]
lst = ["apple", "banana", "peach", "pear", "watermelon"]
lst2 = sorted(lst, key=lambda s: len(s))  # 计算字符串长度排序
print(lst2)  # ['pear', 'apple', 'peach', 'banana', 'watermelon']
lst = [{"id": 1, "name": "lily", "age": 18},
      {"id": 2, "name": "lucy", "age": 20},
      {"id": 3, "name": "tom", "age": 19}]
lst2 = sorted(lst, key=lambda dic: dic["age"])  # 根据年龄排序
print(lst2)  # [{'id': 1, 'name': 'lily', 'age': 18}, {'id': 3, 'name': 'tom', 'age': 19}, {'id': 2, 'name': 'lucy', 'age': 20}]

猜你喜欢

转载自www.cnblogs.com/lilyxiaoyy/p/11899417.html
今日推荐