python itertools_python - itertools 模块

相关文档

文档 链接

pymotw 链接

无限迭代器

itertools.count()

说明

生成一个无限迭代的数字队列, 只有进行

参数

其实数字以及步幅

start, [step]

返回值

start, start+step, start+2*step, ...

示例

count(10) --> 10 11 12 13 14 ...

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

from itertools import *

importtime

c= count(10,5)printcfor i inc:

time.sleep(0.5)printi"""count(10, 5)

10

15

20

25

30

35

40

45

50

55

Process finished with exit code -1"""

详细示例

itertools.cycle()

说明

传入一个可迭代对象然后循环遍历此对象

参数

p

返回值

p0, p1, ... plast, p0, p1, ...

示例

cycle('ABCD') -->A B C D A B C D ...

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

from itertools import *

importtime

c= cycle([1, 2, 3])printcfor i inc:

time.sleep(0.5)printi"""

1

2

3

1

2

3

1

2

Process finished with exit code -1"""

详细示例

itertools.repeat()

说明

传入一个对象, 以及数字, 遍历此对象指定数字次数

参数

elem [,n]

返回值

elem, elem, elem, ... endlessly or up to n times

示例

repeat(10, 3) --> 10 10 10

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

from itertools import *

importtime

c= repeat(3, 5)printcfor i inc:

time.sleep(0.5)printi"""repeat(3, 5)

3

3

3

3

3

Process finished with exit code 0"""

详细示例

处理输入序列迭代器

itertools.chain()

说明

传入多个序列, 遍历时将多个序列串联一起进行

参数

p, q, ...

返回值

p0, p1, ... plast, q0, q1, ...

示例

chain('ABC', 'DEF') -->A B C D E F

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

from itertools import *c= chain(range(5), range(3))printcfor i inc:printi"""

0

1

2

3

4

0

1

2

Process finished with exit code 0r"""

详细示例

itertools.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

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

from itertools import *c= compress("hahahahahaha", [1, 0, 1, 0, 1, 0, 1, 0])printcfor i inc:printi"""

h

h

h

h

Process finished with exit code 0"""

详细示例

itertools.dropwhile()

说明

在条件为false之后的第一次, 返回迭代器中剩下来的项.

参数

pred, seq

返回值

seq[n], seq[n+1], starting when pred fails

示例

dropwhile(lambda x: x<5, [1,4,6,4,1]) --> 6 4 1

defdropwhile(predicate, iterable):#dropwhile(lambda x: x<5, [1,4,6,4,1]) --> 6 4 1

iterable =iter(iterable)for x initerable:if notpredicate(x):yieldxbreak

for x initerable:yield x

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

from itertools import *

defshould_drop(x):print 'Testing:', xreturn (x<1)for i in dropwhile(should_drop, [ -1, 0, 1, 2, 3, 4, 1, -2]):print 'Yielding:', i

Testing:-1Testing: 0

Testing:1Yielding:1Yielding:2Yielding:3Yielding:4Yielding:1Yielding:-2

详细示例

itertools.groupby()

说明

按照keyfunc函数对序列每个元素执行后的结果分组(每个分组是一个迭代器), 返回这些分组的迭代器

参数

iterable[, keyfunc]

返回值

sub-iterators grouped by value of keyfunc(v)

示例

chain('ABC', 'DEF') --> A B C D E F

迭代器   参数 结果 例子ifilter() pred, seq elements of seq where pred(elem)is True ifilter(lambda x: x%2, range(10)) --> 1 3 5 7 9ifilterfalse() pred, seq elements of seq where pred(elem)is False ifilterfalse(lambda x: x%2, range(10)) --> 0 2 4 6 8islice() seq, [start,] stop [, step] elementsfrom seq[start:stop:step] islice('ABCDEFG', 2, None) -->C D E F G

imap() func, p, q, ... func(p0, q0), func(p1, q1), ... imap(pow, (2,3,10), (5,2,3)) --> 32 9 1000starmap() func, seq func(*seq[0]), func(*seq[1]), ... starmap(pow, [(2,5), (3,2), (10,3)]) --> 32 9 1000tee() it, n it1, it2 , ... itn splits one iterator into n

takewhile() pred, seq seq[0], seq[1], until pred fails takewhile(lambda x: x<5, [1,4,6,4,1]) --> 1 4izip() p, q, ... (p[0], q[0]), (p[1], q[1]), ... izip('ABCD', 'xy') -->Ax By

izip_longest() p, q, ... (p[0], q[0]), (p[1], q[1]), ... izip_longest('ABCD', 'xy', fillvalue='-') --> Ax By C- D-

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值