1. chain
import itertools
listone = ['a', 'b', 'c']
listtwo = ['11', '22', '33']
for item in itertools.chain(listone, listtwo):
print item,
output:
a b c 11 22 33
2. count
cout返回一个无界的迭代器
import itertools
i = 0
for item in itertools.count(100):
if i > 10:
break
print item,
i = i+1
output:
100 101 102 103 104 105 106 107 108 109 110
3. cycle
从列表中取元素,到列表尾后再从头取...
import itertools
listone = ['a', 'b', 'c']
i = 0
for item in itertools.cycle(listone):
if i > 10:
break
print item,
i = i + 1
output:
a b c a b c a b c a b
4. ifilter
返回一个可以让fun返回True的迭代器,
import itertools
def funLargeFive(x):
if x > 5:
return True
for item in itertools.ifilter(funLargeFive, range(-10, 10)):
print item,
output:
6 7 8 9
5. imap
返回一个迭代器,对iterator中的每个项目调用fun
import itertools
listthree = [1,2,3]
def funAddFive(x):
return x+5
for item in itertools.imap(funAddFive, listthree):
print item,
output:
6 7 8
6.islice的使用
islice()(seq, [start,] stop [, step])
import itertools
listone = ['a','b','c']
listtwo = ['11','22','abc']
listthree = listone + listtwo
for item in itertools.islice(listthree, 3, 5):
print item,
output:
11 22
7. izip
izip(*iterator)
import itertools
listone = ['a','b','c']
listtwo = ['11','22','abc']
listthree = listone + listtwo
for item in itertools.izip(listone, listtwo):
print item,
output:
('a', '11') ('b', '22') ('c', 'abc')
8. repeat
repeate(element, [,n])
import itertools
listone = ['a', 'b', 'c']
for item in itertools.repeat(listone, 3):
print item,
output:
['a', 'b', 'c'] ['a', 'b', 'c'] ['a', 'b', 'c']
Python的itertools和迭代器
最新推荐文章于 2024-04-29 07:04:51 发布