2018-07-25Python(7)
python基础语法(7) 函数下
- lambda函数
lambda函数有自己的作用域。
代码示例:
def makeAction(x):
acts=[]
for i in range(5):
# i=0,1,2,3,4
acts.append((lambda x,j=i:j**x))
return acts
fs=makeAction()
print(fs0)
- map()
代码示例:
arr = [2,4,6,8,9] def func(x): return x*2+1 res01 = map(func,arr) print(list(res01))
输出结果:
[5,9,13,17,19]
map()方法用来将list中的每一个元素都带到方法中执行,最后返回一个map地址,需要将其转化为list类型才能查看。
- reduce()
代码示例:
from functools import reduce arr = [2,4,6] res = reduce(lambda x,y:x + y,arr) print(res)
输出结果:
12
reduce方法需要传入至少两个值,先将传入值的前两个进行函数运算,之后将运算结果与接下来的一个数进行运算,直到最后,得出一个结果。
可以利用该方法进行累加运算。
- filter()
代码示例:
arr = ('张晓明','张山','王重阳','李娟') res = filter(lambda s:s[0] == '张' and len(s) == 2, arr) print(list(res))
输出结果:
张山filter()可以看成是条件搜索,只会搜索元祖中满足条件的值,并将其拷贝出来。
- sorted()
代码示例:
users=[ {'id':'008','user_name':'admin','user_password':'888','type':0}, {'id':'002','user_name':'joke','user_password':'777','type':1}, {'id':'001','user_name':'nose','user_password':'777','type':1} ] res=sorted(users,key=lambda user:user['id'],reverse=True) print(res)
sorted()方法中有三个变量,第一个是要排序的list,第二个是要排序的key值,第三个,是正序还是倒序。
- 函数的闭包
为了系统的安全,当函数调用结束后能够被立即回收。
代码示例:
a = 1 # 全局变量(任何人都可以访问它,易被修改;耗内存) def func_out(): a = 2 def func_in():#访问父函数的变量用nonlocal,若不存在父函数则会报错 nonlocal a a = a + 3 print(a) return func_in
- 简介
模块就是以.py结尾的Python文件。里面是python语句和python对象的定义。
模块的作用是让代码变得更加条例清晰。
把相关的代码归到一个模块中,剋让代码更易懂。
模块中可以包含函数,类,变量。
- 两种带入模块的方式
- import + 模块相对地址
- form 模块相对地址 import 导入的方法名
- 导入模块是Python解析器的检索顺序
- 当前目录
- shell变量PYTHONPATH下的每个目录
- 查看默认路径(UNIX: /usr/local/lib/python/)模块搜索路径存储在 system 模块的 sys.path 变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。
- globals() 和 locals() 函数
- globals()用来取到全局变量
- locals()用来取到其父集函数中的变量
- reload()函数
reload(module_name)用来重新导入一个模块,因为模块顶层的代码只会在导入模块的时候执行一次,如果想再次执行,可以用reload()函数重载该模块。
- 【2018-07-25Python(7)】init.py
该文件用于模块的初始化,只在模块导入的时候执行一次。它的里面可以为空,主要用来标识当前文件夹是一个包。
推荐阅读
- python学习之|python学习之 实现QQ自动发送消息
- 逻辑回归的理解与python示例
- python自定义封装带颜色的logging模块
- 【Leetcode/Python】001-Two|【Leetcode/Python】001-Two Sum
- Python基础|Python基础 - 练习1
- Python爬虫|Python爬虫 --- 1.4 正则表达式(re库)
- Python(pathlib模块)
- python青少年编程比赛_第十一届蓝桥杯大赛青少年创意编程组比赛细则
- Java|Java基础——数组
- Python数据分析(一)(Matplotlib使用)