内置函数:fliter(func,iterable),他的语法结构跟map函数基本一致,调用输出也是一个地址,需要通过类型强转输出,他的作用是过滤,看下面一个例子
Tuple1=(2,3,6,11,56,1,76)
#要过滤出其中大于10的数字
s=filter(lambda x: x>10,Tuple1)
print(list(s))
[11, 56, 76]
#有一个学生字典列表,要取age>20的信息
students=[{'name':'Tom','age':20},
{'name':'lucy','age':19},
{'name':'lily','age':13},
{'name':'mark','age':21},
{'name':'jack','age':23},
{'name':'steven','age':18}]
s=filter(lambda x: x['age']>20,students)
print(list(s))
[{'name': 'mark', 'age': 21}, {'name': 'jack', 'age': 23}]
可以看出filter过滤器结合匿名函数很简单的取出了想要的元素。
内置函数sorted:格式:sorted(iterable,key,reverse)(注意,列表也有sort类方法,只适用于列表)
key如max中的key,可按key来排序。如下例
students=[{'name':'Tom','age':20},
{'name':'lucy','age':19},
{'name':'lily','age':13},
{'name':'mark','age':21},
{'name':'jack','age':23},
{'name':'steven','age':18}]
#通过年龄从小到大升序排序
a=sorted(students,key=lambda x:x['age'],reverse=False)
print(a)
[{'name': 'lily', 'age': 13}, {'name': 'steven', 'age': 18}, {'name': 'lucy', 'age': 19}, {'name': 'Tom', 'age': 20}, {'name': 'mark', 'age': 21}, {'name': 'jack', 'age': 23}]