第八章、函数进阶之字典生成式与匿名函数

第八章、函数进阶之字典生成式与匿名函数

一、 字典生成式一般与zip连用

压缩后的每一个元素是元组类型的
keys=["name","age","gender"]
values=["nick",19,"male"]
res=zip(keys,values)
for i in res:
    print(i)
    print(type(i))
print(res)
('name', 'nick')
<class 'tuple'>
('age', 19)
<class 'tuple'>
('gender', 'male')
<class 'tuple'>
<class 'zip'>

二、匿名函数

1. 什么是函数

匿名函数就是没有名字的函数,使用一次就会被回收,加括号就可以运行

res = (lambda x,y: x+y)(1,2)
print(res)
-------------------------------------------------------------
3

2. 与内置函数连用

​ storted():对容器进行从小到大排序

salary_list_dict = {'tank':2,'nick':5,'sean':8}
salary_list = list(salary_list_dict.items())#变为列表
print(sorted(salary_list,key = lambda i:i[1])) #把salary_list变成迭代器,取出所有元素i,i[1]就是元组的第二个值
[('tank', 2), ('nick', 5), ('sean', 8)]
salary_list_dict = {'tank':2,'nick':5,'sean':8}
salary_list = list(salary_list_dict.items())
print(list(map(lambda i:i[1] + 2000,salary_list)))   #让他们的工资都加2000
[2002, 2005, 2008]
salary_list_dict = {'tank':2,'nick':5,'sean':8}
salary_list = list(salary_list_dict.items())
print(list(filter(lambda i:i[1] <6,salary_list)))  #输出薪资小于6的人名
[('tank', 2), ('nick', 5)]

工作原理:

  1. 首先将可迭代对象变为迭代器对象

  2. i当做参数传给第一个参数指定的函数,然后内置方法判断函数

猜你喜欢

转载自www.cnblogs.com/demiao/p/11348959.html