官方文档: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