发布于2020-02-25 00:43 阅读(690) 评论(0) 点赞(6) 收藏(1)
格式:
>>> def dxs(x):
return 2* x + 1
>>> lambda x: 2*x+1
<function <lambda> at 0x03DA7D60>
>>> g= lambda x: 2*x+1
>>> g(5)
11
>>> dxs(5)
11
>>> lambda x,y: x+y
<function <lambda> at 0x03DA7D60>
>>> g=lambda x,y: x+y
>>> g(3,4)
7
lambda表达式的作用:
省去函数定义的过程,更加精简
BIF:
filter(过滤器):
格式:filter(条件,内容)(返回的值为filter类型,可以用list或者tuple列表显示)
>>> filter(None,[1,0,False,True])
<filter object at 0x016200B8>
>>> list(filter(None,[1,0,False,True]))
[1, True]
>>> def odd(x):
return x%2
>>> temp = range(10)
>>> show = filter(odd,temp)
>>> print(show)
<filter object at 0x01636A00>
>>> list(show)
[1, 3, 5, 7, 9]
>>> list(filter(lambda x: x%2,range(10)))
[1, 3, 5, 7, 9]
>>> type(show)
<class 'filter'>
>>> type(filter(lambda x: x%2,range(10)))
<class 'filter'>
map(映射)
对元素进行加工,返回加工后的新序列
>>> list(map(lambda x:x*2,range(10)))
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
#1
>>> a=(lambda x,y=3:x*y)
>>> a(2)
>>> def diaosi(x):
if x%2:
return x
else:
None
>>> print(diaosi(3))
3
>>> tuple(filter(lambda x: x%3==0,range(100)))
(0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99)
>>> [x for x in range(100) if x%3==0 ]
[0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]
列表解析式:
(1)条件循环改写
numbers = [1, 2, 3, 4, 5]
doubled_odds = []
for n in numbers:
if n % 2 == 1:
doubled_odds.append(n * 2)
#转换成了这两行代码:
numbers = [1, 2, 3, 4, 5]
doubled_odds = [n * 2 for n in numbers if n % 2 == 1]
(2)无条件循环改写
oubled_numbers = []
for n in numbers:
doubled_numbers.append(n * 2)
上面这段代码页可以改写为一个列表解析式:
doubled_numbers = [n * 2 for n in numbers]
(3)嵌套循环改写
flattened = []
for row in matrix:
for n in row:
flattened.append(n)
下面这个列表解析式实现了相同的功能:
flattened = [n for row in matrix for n in row]
>>> list(map(lambda x,y:[x,y],range(10),range(10)))
[[0, 0], [1, 1], [2, 2], [3, 3], [4, 4], [5, 5], [6, 6], [7, 7], [8, 8], [9, 9]]
>>> def odd(n):
return lambda x: n*x
#调用方式一
>>> print(odd(1)(2))
2
#调用方式二
>>> a = odd(2)
>>> print(a('at'))
atat
作者:加班是一种习惯
链接:https://www.pythonheidong.com/blog/article/232977/ed4062056bdce3e8f1f1/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!