0
点赞
收藏
分享

微信扫一扫

itertools

卿卿如梦 2022-01-12 阅读 57
python

itertools

count

import itertools

for i in itertools.count(0, 2):
    print(i)

cycle

import itertools

for i in itertools.cycle('abc'):
    print(i)

repeat

import itertools

for i in itertools.repeat('abc',10):
    print(i)

accumulate

import itertools

for i in itertools.accumulate([1,2,3,4,5]):
    print(i)

chain

from itertools import chain

print(list(chain(range(0,5), range(5,11))))
print(list(chain([0,1,2,3,4],[5,6,7,8,9,10])))

chain.from_iterable

import itertools

a = ['abc',['d','e','f']]
for i in itertools.chain.from_iterable(a):
    print(i)

compress

import itertools

table = [1, 0, 1, 0, 1]
a = ['a','b','c','d']

for i in itertools.compress(a, table):
    print(i)

dropwhile

import itertools

a = [1,2,3,4,5,6,7,8,9,10]
for i in itertools.dropwhile(lambda x:True if x <=5 else False,a):
    print(i)

filterfalse

import itertools


a = [1,2,3,4,5,6,7,8,9,10]

for i in itertools.filterfalse(lambda x:True if x <=5 else False,a):
    print(i)

groupby

import itertools


dic = [
    {'class':'1班','name':'小红'},
    {'class':'1班','name':'小军'},
    {'class':'2班','name':'小李'},
    {'class':'3班','name': '小韩'},
    {'class':'2班','name':'小刚'},
    {'class':'3班','name':'小赵'}
]

for group in itertools.groupby(sorted(dic,key=lambda x:x['class']), lambda x:x['class']):
    print(group)

islice

import itertools


a = range(10)

print(list(itertools.islice(a, 10)))
print(list(itertools.islice(a, 1, 10)))
print(list(itertools.islice(a, 1, None, 2)))
print(list(itertools.islice(a, 100, None, 2)))

starmap

import itertools


# map
k = [1,2,3,4,5,6]
v = ['a','b','c']

for i in map(lambda x,y:x+y,[1,2,3],[1,2,3,4,5,6]):
    print(i)
    
    
# starmap
for i in itertools.starmap(lambda x:x,[{'a':1},{'b':2},{'c':3}]):
    print(i)

for i in itertools.starmap(lambda x:x,[(1,),(2,),(3,)]):
    print(i)

for i in itertools.starmap(lambda x,y:x+y,[(1,2),(3,4),(5,6)]):
    print(i)

takewhile

import itertools


a = [1,2,0,1,2]

b = itertools.takewhile(lambda x:True if x >= 1 else False, a)

print(list(b))

tee

import itertools


a = ['a','b','c']


for i in itertools.tee(a, 2):
    print(i)

zip_longest

import itertools

k = [1,2,3,4,5,6]
v = ['a','b','c']


for i in itertools.zip_longest(k,v,fillvalue=None):
    print(i)
举报

相关推荐

0 条评论