官方文档:https://docs.python.org/zh-cn/3/library/functions.html

sort函数的使用

# 有几个内置函数和内置类,用到了匿名函数
nums = [1,2,3,4,5,6,9,8,7]

# 列表的sort方法,会直接对列表进行排序
nums.sort()
print(nums)

ints = (5,7,8,2,4,3,9)
# sorted内置函数,不会改变原有的数据,而是生成一个新的有序的列表
x = sorted(ints)
print(x)

students = [
    {'name':'zhangsan','age':22,'score':97,'height':180},
    {'name':'lisi','age':21,'score':98,'height':189},
    {'name':'wangwu','age':23,'score':87,'height':170},
    {'name':'mazi','age':20,'score':77,'height':160},
]

# 字典和字典之间不能使用比较运算符
#students.sort()

def foo(ele):
    return ele['age']  # 通过返回值告诉sort方法,按照元素进行排序
# 需要传递参数key,指定比较规则
# key参数类型是函数
students.sort(key=foo) # 在sort内部实现的时候,调用了foo方法,并且传入了一个参数
print(students)

# 使用匿名函数进行排序
students.sort(key=lambda ele:ele['score'])
print(students)

filter内置类

# filter 对可迭代对象进行过滤,得到的是一个filter对象
# Python2的时候是内置函数,Python3修改成了一个内置类

ages = [12,23,30,17,16,22,19]

# filter 可以给定两个参数,第一个参数是函数,第二参数是可迭代对象
# filetr结果是一个filter类型的对象
x = filter(lambda ele:ele > 18,ages)
print(x) 

# <filter object at 0x000002990B06FF40> # 返回的是一个可迭代对象

adult = list(x)
print(adult)

map的使用

ages = [12,33,54,17,16,22,19]
m = map(lambda ele:ele+2,ages)
print(list(m))

# map函数,是让执行函数内的操作

reduce的使用

# reduce以前是一个内置函数
# 内置函数和内置类都在builtins.py文件里
from functools import reduce
scores = [100,89,99,90]
print(reduce(lambda ele1,ele2:ele1+ele2,scores))

students = [
    {'name':'zhangsan','age':22,'score':97,'height':180},
    {'name':'lisi','age':21,'score':98,'height':189},
    {'name':'wangwu','age':23,'score':87,'height':170},
    {'name':'mazi','age':20,'score':77,'height':160},
]

def bar(x,y):
    return x + y['age']

print(reduce(bar,students,0))

# 第一次0 给到x, students的第一个字典给到y