python lambda表达式写100以内偶数和_Python 的lambda表达式的一些小细节

本文通过示例探讨了Python的lambda表达式,包括其在求100以内偶数和的应用,以及lambda方法的特性,如不可变性、嵌套定义等。同时展示了filter、map函数与lambda结合的使用技巧。
摘要由CSDN通过智能技术生成

温故而知新,无意中发现以前实验lambda的时候写的测试代码,第一个反映就是,这是我写的????!!!

呵呵,想想XX语言刚把lambda正式加进去,python早早支持了,我可以大喊一声”Python是最好的语言“来找找骂吗?

哈哈。

不过,自从有了lambda,很多代码一行搞定。不过还是有很多不为一般人注意的小细节,详见下面代码:

# coding=UTF-8

#加百子

g=lambda x,y:x+y

total=0;

for i in range(1,101):

#print i

total=g(total,i)

print total

#即使定义相同的lambda方法他们也不能算是同一个

g1=lambda x,y:x+y

g2=lambda x,y:x+y

print g1

print id(g1)

print g2

print id(g2)

#lambda方法嵌套定义,lambda方法不适用变量引用而直接调用

print (lambda x,y:x+((lambda a:a+1)(y)))(1,2)

#lambda方法定义不可以回车,也就是说像for这种代码不能出现再lambda方法中

#error

# lambda x,y:

#     num=0

#     for i in range(x,y+1)

#         num+=i

#取可迭代的序列参数中所有满足真条件的值

#元组和列表

print filter(None,(1,0,True,False))

print filter(None,[1,0,True,False])

#字典的奇葩结果:返回的是key的列表,并且判断时以第一个符合的元素的类型作为基准

print filter(None,{"a":1,"b":0,"c":True,"d":False})

print filter(None,{1:'s',0:'s',True:'s',False:'s'})

print filter(None,{True:'s',False:'s',1:'s',0:'s'})

print filter(None,{0:'s',1:'s',True:'s',False:'s'})

print filter(None,{False:'s',0:'s',1:'s',True:'s'})

print filter(None,{False:'s',0:'s',1:'s',True:'s',2:'s',1.23:'s','KK':'s',0.00:'s'})

print filter(lambda x:x%2,{1:'s',2:'s',3:'s',4:'s'})

#取反

print filter(lambda x:not x,[1,0,True,False] )

#取奇数和偶数

print filter(lambda x:x%2, [1,2,3,4,5,6,7])

print filter(lambda x:(x+1)%2, [1,2,3,4,5,6,7])

#print filter(lambda [x,y]:(x+y)%2, [[1,2],[3,4],[5,6],[7,1]])error

print map(None,range(10))

print map(lambda x:x*100,range(10))

print map(lambda x:x*100+(x%2)*(-1)+((x+1)%2)*1,range(10))

print map(lambda x:0,range(10))

print map(lambda x:[x-1,x,x+1],range(10))

print map(lambda x:(x-1,x,x+1),range(10))

#元组会变成元素相同的列表

print map(None,(1,2,3,4,5))

#即使返回的列表相同,地址已经不同,也就是两个列表不是同一个

l1 = [1, 2, 3, 4, 5, 6]

l2 = map(None, l1)

print l1,id(l1)

print l2,id(l2)

输出结果如下:(改天有空的时候,我会把输出结果对应者插进去,现在请各位凑合着看吧)

5050

 at 0xb7487bfc>

3074980860

 at 0xb7487f7c>

3074981756

4

(1, True)

[1, True]

['a', 'c', 'b', 'd']

[1]

[True]

[1]

[1]

[1, 2, 'KK', 1.23]

[1, 3]

[0, False]

[1, 3, 5, 7]

[2, 4, 6]

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

[0, 100, 200, 300, 400, 500, 600, 700, 800, 900]

[1, 99, 201, 299, 401, 499, 601, 699, 801, 899]

[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

[[-1, 0, 1], [0, 1, 2], [1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6], [5, 6, 7], [6, 7, 8], [7, 8, 9], [8, 9, 10]]

[(-1, 0, 1), (0, 1, 2), (1, 2, 3), (2, 3, 4), (3, 4, 5), (4, 5, 6), (5, 6, 7), (6, 7, 8), (7, 8, 9), (8, 9, 10)]

[1, 2, 3, 4, 5]

[1, 2, 3, 4, 5, 6] 3074533388

[1, 2, 3, 4, 5, 6] 3074983436

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值