Python的itertools和迭代器

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']

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值