统计一共有几个数字

s="sdfa45ads46723"

#lambda

>>> filter(lambda x:x.isdigit(),list(s))

['4', '5', '4', '6', '7', '2', '3']

>>> len(filter(lambda x:x.isdigit(),list(s)))

7

>>> reduce(lambda x,y:x+y,map(lambda x:x.isdigit(),list("sdfa45ads46723")))

7

>>> reduce(lambda x,y:x+y,map(lambda x:len(x),filter(lambda x:x.isdigit(),[i for i in s][::-1])))

7

列表的切片还是列表,如果取一个元素就是元素本身类型

>>> a=[1,2]

>>> a[0]

1

>>> a[0:1]

[1]

Map的作用

将每个列表元素都按表达式分别运算

Reduce()累加操作

>>> reduce(lambda x,y:x+y,[1,2,3])

6

X=1,y=2

结果3传给y

X从第二次开始存结果

reduce(lambda x,y:x+y+y,[1,2,3])

x=1,y=2,y=2

x=5,y=3,y=3

11

x是5就对了

>>> reduce(lambda x,y:x+x+y,[1,2,3])

1+1+2=4

4+4+3=11

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐