python filter过滤器的使用_如何在Python 3中使用过滤器、映射和精简
的功能map和filter被有意更改為返回迭代器,并從內(nèi)置并放置在functools.reduce.
所以,為了filter和map,你可以用list()像你以前一樣看到結(jié)果。
>>> def f(x): return x % 2 != 0 and x % 3 != 0
...
>>> list(filter(f, range(2, 25)))
[5, 7, 11, 13, 17, 19, 23]
>>> def cube(x): return x*x*x
...
>>> list(map(cube, range(1, 11)))
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]
>>> import functools
>>> def add(x,y): return x+y
...
>>> functools.reduce(add, range(1, 11))
55
>>>
現(xiàn)在的建議是用生成器、表達(dá)式或列表理解替換對(duì)map和Filter的使用。例子:
>>> def f(x): return x % 2 != 0 and x % 3 != 0
...
>>> [i for i in range(2, 25) if f(i)]
[5, 7, 11, 13, 17, 19, 23]
>>> def cube(x): return x*x*x
...
>>> [cube(i) for i in range(1, 11)]
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]
>>>
他們說(shuō)循環(huán)是99%的時(shí)間容易讀比減少,但我只堅(jiān)持functools.reduce.
99%的數(shù)字直接從Python3.0的新特性是什么?書(shū)名:Guido van Rossum.
總結(jié)
以上是生活随笔為你收集整理的python filter过滤器的使用_如何在Python 3中使用过滤器、映射和精简的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 求助!!谁知道哪里能买到这两只狗!!有图
- 下一篇: 验血要多少钱啊?