PythonDay13
第十三章
今日内容
匿名函数
内置函数二
闭包
匿名函数
匿名函数就是一行函数,关键字是lambda
lambda x:x
# lambda 参数:返回值
x 是普通函数的形参 可以不定义形参
:x 是 普通函数的返回值(只能返回一个数据类型)
f = lambda x:x+6
print(f(1)) # 结果:7
print(f.__name__) # 查看函数的名字 函数名为lambda
lst = [lambda :i for i in rang(5)]
print(lst[0]())
# 结果:4
面试题拆解:
lst = []
for i in range(5):
def func():
return i
lst.append(func)
内置函数二
字典的合成方式
dict([(1,2),(3,4)]) # 中括号也可以换成小括号
# {1: 2, 3: 4}
dict(k=1,v=2,c=3)
# {'k': 1, 'v': 2, 'c': 3}
dic1 = {"key1":1,"key2":2}
dic2 = {"a":1,"b":2}
print(dict(**dic1,**dic2))
# {'key1': 1, 'key2': 2, 'a': 1, 'b': 2}
print()
sep:每个元素之间分割的字符,默认是" "空格
end:print执行完后的结束语句,默认是\n
file:文件句柄,默认是显示到屏幕,也可以写进文件,例如:
print(1,2,3,4,file=open("test","w",encoding="utf-8"))
sum
算出可迭代对象中的和,只能算int
abs
绝对值
dir
print(dir(list))
print(dir(str))
# 查看当前对象所有方法,返回的是列表
zip
拉链
lst1 = [1,2,3,4]
lst2 = ['a','b','c','d','e']
面试题:
print(dict(zip(lst1,lst2)))
# {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
format
print(format('alex','>20')) # 左对齐
print(format('alex','<20')) # 右对齐
print(format('alex','^20')) # 居中
进制转换
print(format(10, "b")) # bin 二进制
print(format(10, "08o")) # oct 八进制
print(format(10, "08x")) # hex 十六进制
print(format(0b1010), "d") # 十进制
reversed
反转
print(list(reversed("alex")))
# 得到的是迭代成列表之后的反转
# 得到的是一个新列表
filter
过滤
lst = [1,2,3,4,5,6]
print(list(filter(lambda x:x>1,lst)))
# 过滤掉大于1的数字
lst = [{'id':1,'name':'alex','age':18},
{'id':1,'name':'wusir','age':17},
{'id':1,'name':'taibai','age':16},]
print(list(filter(lambda x:x['age']>16,lst)))
# 留下年龄大于16的信息
map
映射函数(将可迭代对象中的每个元素执行指定的函数)
print(list(map(lambda x,y:x+y,[1,2,3],[11,22,33,44])))
# 将每个列表的对应元素相加 print([i*8 for i in [1,2,3,4]])
# 8,16,24,32
sorted
print(sorted([1,-22,3,4,5,6],key=abs)) # key指定排序规则
# 排序 执行了绝对值之后的列表 lst = ["三国演义","红楼梦","铁道游击队","西游记","水浒传","活着"]
print(sorted(lst,key=len))
# 通过长度排序 lst = [{"age": 19}, {"age1": 20}, {"age2": 80}, {"age3": 10}]
# print(sorted(lst, key=lambda x: x.values()))
print(sorted(lst, key=lambda x: x.keys(), reverse=True))
# 通过键和值排序
max,min
最大值和最小值
reduce
from functools import reduce # 累计算 # 内部实现原理
def func(x,y):
return x+y
print(reduce(func,[1,2,3,4,5])) print(reduce(lambda x,y:x+y,[1,2,3,4,5]))
闭包
闭包
# 1.在嵌套函数中,使用非本层且非全局变量的就是闭包
# print(inner.__closure__) 判断是否是闭包 返回None就不是 # 闭包的作用:
# 1.保护数据的安全性
# 2.装饰器
PythonDay13的更多相关文章
- Python--day13(函数嵌套定义,global、nonlocal、闭包函数、装饰器)
今日主要内容 1. 函数的嵌套定义 2. global.nonlocal关键字 3. 闭包及闭包的应用场景 4. 装饰器 1. 函数的嵌套定义 概念:在一个函数的内部定义另一个函数 为什么要有 ...
- 路飞学城Python-Day13
[2.常用模块-模块的种类和导入方法] 1.什么是模块? 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长.越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分 ...
- python-day13(正式学习)
闭包函数 闭包 闭包:闭是封闭(函数内部函数),包是包含(该内部函数对外部作用域而非全局作用域的变量的引用).闭包指的是:函数内部函数对外部作用域而非全局作用域的引用. 额...这里提示一下闭包!=自 ...
- 初学Python-day13 文件处理1
IO操作 一.os模块 作用:包含了操作系统的基本功能,提供了非常丰富的用来处理文件和目录的函数或方法. 1.属性 函数名 函数说明 name 获取操作系统的类型 uname 获取操作系统的信息(li ...
随机推荐
- 51 Nod 1085 01背包问题
1085 背包问题 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 在N件物品取出若干件放在容量为W的背包里,每件物品的体积为W1,W2--Wn(Wi为 ...
- python实现一个层次聚类方法
层次聚类(Hierarchical Clustering) 一.概念 层次聚类不需要指定聚类的数目,首先它是将数据中的每个实例看作一个类,然后将最相似的两个类合并,该过程迭代计算只到剩下一个类为止,类 ...
- Spring Boot教程(三十二)多数据源配置与使用(1)
之前在介绍使用JdbcTemplate和Spring-data-jpa时,都使用了单数据源.在单数据源的情况下,Spring Boot的配置非常简单,只需要在application.propertie ...
- postman如何绕过登录账户和密码验证,进行接口测试的方法
实测于:2019.01.08 参考原文:https://yq.aliyun.com/ziliao/403942 一.获取登录后的cookie数据 1.打开浏览器: 2.启用开发者模式(F12键): 3 ...
- jQuery动态添加和删除表格行
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...
- java期末课程总结
期末课程总结 转眼间,这个学期就要过去了,我们Java的学习也接近了尾声,回想到这个学期刚开始接触到Java的时候,感觉什么都不懂,但现在似乎有了门路,不会载懵懵懂懂, 虽然本学期面向对象与Java程 ...
- 191016Django基础
一.简单的webserver框架 from wsgiref.simple_server import make_server def login(req): #view函数 print(req[&qu ...
- How to correctly use preventDefault(), stopPropagation(), or return false; on events
How to correctly use preventDefault(), stopPropagation(), or return false; on events I’m sure this h ...
- CSS - 设置 select 元素的样式
注意:option 外面有个框,这个框不同浏览器生成的还不一样,给这个框设置样式的方法也没有找到(有说法是这是浏览器创建的 shadow dom 没法设置).所以要想完全控制还是用列表进行模拟比较好. ...
- 正向代理与反向代理以及Nginx【总结】(转)
今天在了解Nginx的时候,涉及到反向代理的问题,看到一篇博文写的清晰明了,转载记录一下,后续继续学习,再次感谢博主的分享. 原文地址:https://www.cnblogs.com/Anker/p/ ...