Python 函数式编程 -- itertools 模块
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python 函数式编程 -- itertools 模块,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2889字,纯文字阅读大概需要5分钟。
内容图文
![Python 函数式编程 -- itertools 模块](/upload/InfoBanner/zyjiaocheng/855/75ae60dd5c4a40e7b6c3e7ff3c7ce941.jpg)
– Start
itertools 模块提供了非常多的方法。
Infinite iterators
Iterator | Arguments | Results | Example |
---|---|---|---|
count() | start, [step] | start, start+step, start+2*step, … | count(10) --> 10 11 12 13 14 … |
cycle() | p | p0, p1, … plast, p0, p1, … | cycle(‘ABCD’) --> A B C D A B C D … |
repeat() | elem [,n] | elem, elem, elem, … endlessly or up to n times | repeat(10, 3) --> 10 10 10 |
import itertools as it
# count
count_iter = it.count(10)
print([next(count_iter) for i in range(5)])
# cycle
cycle_iter = it.cycle('ABCD')
print([next(cycle_iter) for i in range(8)])
# repeat
repeat_iter = it.repeat(10, 3)
print([next(repeat_iter) for i in range(3)])
Iterators terminating on the shortest input sequence
Iterator | Arguments | Results | Example |
---|---|---|---|
accumulate() | p [,func] | p0, p0+p1, p0+p1+p2, … | accumulate([1,2,3,4,5]) --> 1 3 6 10 15 |
chain() | p, q, … | p0, p1, … plast, q0, q1, … | chain(‘ABC’, ‘DEF’) --> A B C D E F |
chain.from_iterable() | iterable | p0, p1, … plast, q0, q1, … | chain.from_iterable([‘ABC’, ‘DEF’]) --> A B C D E F |
compress() | data, selectors | (d[0] if s[0]), (d[1] if s[1]), … | compress(‘ABCDEF’, [1,0,1,0,1,1]) --> A C E F |
dropwhile() | pred, seq | seq[n], seq[n+1], starting when pred fails | dropwhile(lambda x: x<5, [1,4,6,4,1]) --> 6 4 1 |
filterfalse() | pred, seq | elements of seq where pred(elem) is false | filterfalse(lambda x: x%2, range(10)) --> 0 2 4 6 8 |
groupby() | iterable[, key] | sub-iterators grouped by value of key(v) | |
islice() | seq, [start,] stop [, step] | elements from seq[start:stop:step] | islice(‘ABCDEFG’, 2, None) --> C D E F G |
starmap() | func, seq | func(*seq[0]), func(*seq[1]), … | starmap(pow, [(2,5), (3,2), (10,3)]) --> 32 9 1000 |
takewhile() | pred, seq | seq[0], seq[1], until pred fails | takewhile(lambda x: x<5, [1,4,6,4,1]) --> 1 4 |
tee() | it, n | it1, it2, … itn splits one iterator into n | |
zip_longest() | p, q, … | (p[0], q[0]), (p[1], q[1]), … | zip_longest(‘ABCD’, ‘xy’, fillvalue=’-’) --> Ax By C- D- |
import itertools as it
# accumulate
print(list(it.accumulate([1, 2, 3, 4, 5])))
# chain
print(list(it.chain('ABC', 'DEF')))
# chain.from_iterable
print(list(it.chain.from_iterable(['ABC', 'DEF'])))
# compress
print(list(it.compress('ABCDEF', [1, 0, 1, 0, 1, 1])))
# dropwhile
print(list(it.dropwhile(lambda x: x < 5, [1, 4, 6, 4, 1])))
# filterfalse
print(list(it.filterfalse(lambda x: x % 2, range(10))))
# groupby
print([list(g) for k, g in it.groupby('AAAABBBCCD')])
# islice
print(list(it.islice('ABCDEFG', 2, None)))
# starmap
print(list(it.starmap(pow, [(2,5), (3,2), (10,3)])))
# takewhile
print(list(it.takewhile(lambda x: x < 5, [1, 4, 6, 4, 1])))
# takewhile
print(list(it.takewhile(lambda x: x < 5, [1, 4, 6, 4, 1])))
# tee
my_iter = iter(range(10))
it1, it2 = it.tee(my_iter, 2)
print(list(it1))
print(list(it2))
# zip_longest
print(list(it.zip_longest('ABCD', 'xy', fillvalue='-')))
– 更多参见:Python 精萃
– 声 明:转载请注明出处
– Last Updated on 2018-10-04
– Written by ShangBo on 2018-10-04
– End
内容总结
以上是互联网集市为您收集整理的Python 函数式编程 -- itertools 模块全部内容,希望文章能够帮你解决Python 函数式编程 -- itertools 模块所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。