python/匿名函数和内置函数
1 匿名函数
匿名函数是lambda定义的没有名字的具有一些小功能的函数 具体形式是
lambda 参数列表:返回值表达式
lambda x: X**2
# 求平方操作
lambda x: x>100
# 判断参数是否大于100
2 内置函数
1) int(), float(), bool(), str(), list(), set(), tuple() 和 dict() 这些都是和类型相关的函数 这些叫做 工厂函数 2) map(), reduce() 和 filter() map()函数有两个参数, 一个是处理函数, 另一个是可迭代对象, map取出可迭代对象的元素, 进行前面的函数操作, 形成新的迭代器的元素, 最终返回该迭代器
>>> l = [1,2,3,4,5]
>>> m = map( lambda x:x*x, l)
>>> m
<map object="" at="" 0x0000000003200240="">
>>> list(m)
[1, 4, 9, 16, 25]
</map>
reduce()函数性质同map()函数, 只是传入的函数需要设置两个参数, 具体功能是每次取迭代器中的两个元素,放入函数操作, 下次取出一个值和上一次运行的结果继续在函数中运行, 最后得到一个值并且返回
>>> from functools import reduce
>>> l = range(100)
>>> sumValue = reduce(lambda x,y:x+y, l)
>>> sumValue
4950
fileter()函数用于过滤, 和map()类似取一个元素放入函数中运行, 如果运行结果为True则放入生成器中, 否则不放入, 最后返回这个生成器
nameDict = [
{'name':'egon','age':18},
{'name':'dfire','age':1000},
{'name':'gaoluchuan','age':9000},
{'name':'fsw','age':10000},
]
filter(lambda x:x['age']>100,nameDict)
3) zip() 拉链函数, 用于将参数中的可迭代对象的元素组个弄出来匹配成一个一个的元组
d={"a":1203,"b":4568,"c":1425}
for i in zip(d.keys(), d.values()):
print(i)
4) abs() abs是求绝对值的
>>> abs(-1)
1
>>> abs(1)
1
>>> abs(0)
0
5) all() 和 any() all函数传入一个可迭代对象, 分别遍历其中的元素, 并且进行bool值判断, 如果有一个值为False就返回False, 只有全部为True才返回True 当all的参数是空的可迭代对象的时候返回True any()函数情况与all()相反, any()中传入空的可迭代对象值为False, 一个值为True就是True, 全部为False才为False
>>> all([])
True
>>> all([1,2,3])
True
>>> all([1,2,3,None])
False
6) bin(), oct(), hex() 返回二进制, 八进制, 十六进制
>>> bin(10)
'0b1010'
7) callable() 判断该对象是否可以被调用
>>> def hello():
print("hello") >>> callable(hello)
True
8) chr() 将字符编码(数字)转化为字符
>>> chr(67)
'C'
9) ord() 与chr()对应, 将字符转化为编码
>>> ord('a')
97
10) complex() 生成复数的函数
>>> i = complex(2-4j)
>>> i.real
2.0
>>> i.imag
-4.0
11) dir() 查看该对象中的成员内容 12) divmod() 传入两个参数, 返回一个元组, 该元组有两个值, 一个是商, 一个是余数
>>> divmod(10,3)
(3, 1)
>>> divmod(15,5)
(3, 0)
13) enumerate() 传入一个可迭代对象, 返回索引和元素组成的元组
>>> for i in enumerate([4,6,7,8,12]):
print(i) (0, 4)
(1, 6)
(2, 7)
(3, 8)
(4, 12)
>>> for i in enumerate([4,6,7,8,12],10):
print(i) (10, 4)
(11, 6)
(12, 7)
(13, 8)
(14, 12)
14) eval() 获取传入的字符串, 把他当成命令执行
>>> l = eval("[1,2,3,4]")
>>> l
[1, 2, 3, 4]
15) hansh() 根据传入的值生成哈希值
>>> hash(1234344)
1234344
>>> hash("shdaiohdsh")
64688500983994519
16) id() 获得对象的身份(一般说是内存地址)
>>> a = 100
>>> id(a)
502009392
>>> b = 100
>>> id(b)
502009392
17) isinstance() 判断对象是不是某种类型的
>>> a = 100
>>> isinstance(a,int)
True
>>> isinstance(a,(int,float))
True
18) iter() 和 next() iter获取可迭代对象的迭代器
>>> l = [1,2,3,4]
>>> iter(l)
<list_iterator object="" at="" 0x0000000003265828="">
</list_iterator>
next是根据迭代器生成一个值
>>> l = [1,2,3,4]
>>> iter(l)
<list_iterator object="" at="" 0x00000000030eab70="">
>>> ll = iter(l)
>>> next(ll)
1
>>> next(ll)
2</list_iterator
19) len() 获得对象的长度
>>> len("hello")
5
>>> len([1,2,3])
3
20) locals() 和 globals() 这是获取局部变量和全局变量的函数
>>> def f():
j = 2
print(locals()) >>> f()
{'j': 2}
>>> globals()
{'f': <function f="" at="" 0x0000000000d40378="">, '__builtins__': <module 'builtins'="" (built-in)="">, '__package__': None, '__doc__': None, 'x': 1, 'y': 'xx', '__name__': '__main__', '__spec__': None, '__loader__': <class '_frozen_importlib.builtinimporter'="">}
</class></module></function>
21) max() 和 min() 求最大值和最小值
d={"a":1203,"b":4568,"c":1425}
def get_value(k):
return d[k] print( max(d, key=get_value ) )
print( min(d, key= lambda k:d[k] ) )
22) open() 打开文件 23) pow() 求次方, 第一个参数是底数,第二个是指数, 加入第三个参数就是对其结果求余
>>> pow(2,3)
8
>>> pow(2,3,3)
2
24) reversed() 颠倒序列
>>> l = [2,8,5,6,9]
>>> reversed(l)
<list_reverseiterator object="" at="" 0x00000000030eab00="">
>>> list(reversed(l))
[9, 6, 5, 8, 2]
</list_reverseiterator>
25) slice() 切片函数 26) sorted() 排序序列
>>> sorted(l)
[2, 5, 6, 8, 9]
>>> sorted(l,reverse=True)
[9, 8, 6, 5, 2]
27) type() 求类型 28) vars() 没有参数的时候就是locals()
python/匿名函数和内置函数的更多相关文章
- python基础知识15---三元表达式、列表推导式、生成器表达式、递归、匿名函数、内置函数
阅读目录 一 三元表达式.列表推导式.生成器表达式 二 递归与二分法 三 匿名函数 四 内置函数 五 阶段性练习 一. 三元表达式.列表推导式.生成器表达式 1 三元表达式 name=input('姓 ...
- python之三元表达式、列表推导、生成器表达式、递归、匿名函数、内置函数
目录 一 三元表达式 二 列表推到 三 生成器表达式 四 递归 五 匿名函数 六 内置函数 一.三元表达式 def max(x,y): return x if x>y else y print( ...
- Python 入门基础12 --函数基础5 匿名函数、内置函数
今日内容: 1.三元表达式 2.列表.元组生成式 | 字典生成式 3.递归 4.匿名函数 5.内置函数 一.三元表达式 三元运算符:就是 if...else... 语法糖 前提:if 和 else # ...
- python协程函数、递归、匿名函数与内置函数使用、模块与包
目录: 协程函数(yield生成器用法二) 面向过程编程 递归 匿名函数与内置函数的使用 模块 包 常用标准模块之re(正则表达式) 一.协程函数(yield生成器用法二) 1.生成器的语句形式 a. ...
- python基础之函数式编程、匿名函数、内置函数
一 函数式编程 不修改外部状态. 模仿数学里得函数进行编程. 用函数编程写出得代码相当精简. 可读性比较差. 例子: y=2*x+1 x=1 def test(x): return 2*x+1 tes ...
- python 基础篇 15 内置函数和匿名函数
------------------------>>>>>>>>>>>>>>>内置函数<<< ...
- python基础-匿名函数和内置函数
匿名函数和内置函数 匿名函数:没有名字,使用一次即被收回,加括号就可以运行的函数. 语法:lambda 参数:返回值 使用方式: 将匿名函数赋值给变量,给匿名函数一个名字,使用这个变量来调用(还不如用 ...
- Python进阶(四)----生成器、列表推导式、生成器推导式、匿名函数和内置函数
Python进阶(四)----生成器.列表推导式.生成器推导式.匿名函数和内置函数 一丶生成器 本质: 就是迭代器 生成器产生的方式: 1.生成器函数
- python 三元表达式、列表推导式、生成器表达式、递归、匿名函数、内置函数
http://www.cnblogs.com/linhaifeng/articles/7580830.html 三元表达式.列表推导式.生成器表达式.递归.匿名函数.内置函数
- python函数知识六 内置函数二、匿名函数与内置函数三(重要)
19.内置函数二 abs():绝对值 lst = [1,2,-3,1,2,-5] print([abs(i) for i in lst]) enumerate("可迭代对象",&q ...
随机推荐
- pycharm中的光标变粗的问题
pycharm中的光标变粗后不能自动打成对的小括号和中括号及引号---->解决办法:按下insert键 按下:insert键进行切换
- oracle中增加pga和sga
修改oracle数据库SGA和PGA大小 个人原创,允许转载,请注明出处,作者,否则追究法律责任. SGA的大小:一般物理内存20%用作操作系统保留,其他80%用于数据库.SGA普通数据库可以分配40 ...
- 智能合约语言 Solidity 教程系列1 - 类型介绍
现在的Solidity中文文档,要么翻译的太烂,要么太旧,决定重新翻译下.尤其点名批评极客学院名为<Solidity官方文档中文版>的翻译,机器翻译的都比它好,大家还是别看了. 写在前面 ...
- python趣味 ——奇葩的全局形参
在c++,c#,js等语言中: 函数定义(参数) 函数体:参数修改 这里的参数修改都是仅限于这个函数体内的 python不知道是不是bug,我们这样写: def test(a=[]): a.appen ...
- java反射机制(先马再看)
http://blog.csdn.net/sinat_38259539/article/details/71799078
- 选择排序—简单选择排序(Simple Selection Sort)
基本思想: 在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换:然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素 ...
- Linux centos 7 安装NFS服务
NFS服务简介:NFS是Network File System的缩写,即网络文件系统.客户端通过挂载的方式将NFS服务器端共享的数据目录挂载到本地目录下.---主要功能指的是共享文件 为什么要安装NF ...
- iOS 10.10 10.11 10.12 安装升级CocoPods
CocoPods简介 CocoaPods是一个用Ruby写的,负责管理iOS以及OSX系统下的一个第三方类库管理工具,通过CocoaPods,我们可以集中,统一的管理第三方开源库.当然这些库徐亚Coc ...
- 【Alpha】随笔集合
Daily Scrum Meeting 第一天 [Alpha]Daily Scrum Meeting第一次 第二天 [Alpha]Daily Scrum Meeting第二次 第三天 [Alpha]D ...
- beta冲刺6-咸鱼
前言:此篇是补昨天凌晨的.后面有更新但是太晚了就没有即使更新.所以现在过来更新一下. 昨天的未完成: 用户测试+测试报告 目前剩下的功能点:输入内容检测 我的社团输出显示格式调整. 今天的完成: 我的 ...