*Memo:
starmap() can return the iterator which does function with the elements of iterable one by one to returns the result one by one as shown below:
*Memo:
- The 1st argument is
function(Required-Type:Callable/NoneType):- Don't use
function=.
- Don't use
- The 2nd argument is
iterable(Required-Type:Iterable):- Don't use
iterable=.
- Don't use
from itertools import starmap x = starmap(lambda: None, []) x = starmap(None, []) print(x) # <itertools.starmap object at 0x000001BE9A289CF0> print(next(x)) # StopIteration: from itertools import starmap from operator import add x = starmap(lambda a, b: a+b, [(2, 5), (3, 2), (10, 3)]) x = starmap(add, [(2, 5), (3, 2), (10, 3)]) print(next(x)) # 7 print(next(x)) # 5 print(next(x)) # 13 print(next(x)) # StopIteration: from itertools import starmap from operator import mul for x in starmap(lambda a, b: a*b, [(2, 5), (3, 2), (10, 3)]): # for x in starmap(mul, [(2, 5), (3, 2), (10, 3)]): print(x) # 10 # 6 # 30 from itertools import starmap for x in starmap(lambda a, b: a**b, [(2, 5), (3, 2), (10, 3)]): # for x in starmap(pow, [(2, 5), (3, 2), (10, 3)]): print(x) # 32 # 9 # 1000 tee() can return a tuple of the iterators which each return the elements of iterable one by one as shown below:
*Memo:
- The 1st argument is
iterable(Required-Type:Iterable):- Don't use
iterable=.
- Don't use
- The 2nd argument is
n(Optional-Default:2-Type:int):- It's the number of iterators.
- It must be
0 <= x. - Don't use
n=.
from itertools import tee v = tee('ABC') v = tee('ABC', 2) v = tee(['A', 'B', 'C']) print(v) # (<itertools._tee object at 0x000001BE99D6E3C0>, # <itertools._tee object at 0x000001BE99F85440>) print(next(v[0])) # A print(next(v[0])) # B print(next(v[0])) # C print(next(v[1])) # A print(next(v[1])) # B print(next(v[1])) # C print(next(v[0])) # StopIteration: print(next(v[1])) # StopIteration: from itertools import tee for x in tee('ABC'): # for x in tee(['A', 'B', 'C']): for y in x: print(y) # A # B # C # A # B # C from itertools import tee for x in tee('ABC', 3): # for x in tee(['A', 'B', 'C'], 3): for y in x: print(y) # A # B # C # A # B # C # A # B # C zip_longest() can return the iterator which aggregates the elements of *iterables one by one to returns a tuple of one or more elements one by one as shown below:
*Memo:
- The 1st arguments are
*iterables(Optional-Default:()-Type:Iterable):- Don't use any keywords like
*iterables=,iterables=, etc.
- Don't use any keywords like
- The 2nd argument is
fillvalue(Optional-Default:None-Type:Any):- It's the value to fill the zero or more missing elements of a returned tuple.
-
fillvalue=must be used.
from itertools import zip_longest v = zip_longest() v = zip_longest((), fillvalue=None) print(v) # <itertools.zip_longest object at 0x000001BE99F29FD0> print(next(v)) # StopIteration: from itertools import zip_longest v = zip_longest('ABC') v = zip_longest(['A', 'B', 'C']) print(next(v)) # ('A',) print(next(v)) # ('B',) print(next(v)) # ('C',) print(next(v)) # StopIteration: from itertools import zip_longest v = zip_longest('ABC', 'vwxyz') v = zip_longest(['A', 'B', 'C'], ['v', 'w', 'x', 'y', 'z']) print(next(v)) # ('A', 'v') print(next(v)) # ('B', 'w') print(next(v)) # ('C', 'x') print(next(v)) # (None, 'y') print(next(v)) # (None, 'z') print(next(v)) # StopIteration: from itertools import zip_longest v = zip_longest('ABC', 'vwxyz', fillvalue='Abscent') v = zip_longest(['A', 'B', 'C'], ['v', 'w', 'x', 'y', 'z'], fillvalue='Abscent') print(next(v)) # ('A', 'v') print(next(v)) # ('B', 'w') print(next(v)) # ('C', 'x') print(next(v)) # ('Abscent', 'y') print(next(v)) # ('Abscent', 'z') print(next(v)) # StopIteration: from itertools import zip_longest for x in zip_longest('ABC', 'vwxyz', [10, 20], fillvalue='Abscent'): # for x in zip_longest(['A', 'B', 'C'], ['v', 'w', 'x', 'y', 'z'], # [10, 20], fillvalue='Abscent'): print(x) # ('A', 'v', 10) # ('B', 'w', 20) # ('C', 'x', 'Abscent') # ('Abscent', 'y', 'Abscent') # ('Abscent', 'z', 'Abscent') from itertools import zip_longest for x in zip_longest('ABC', 'vwxyz', [10, 20], fillvalue='Abscent'): # for x in zip_longest(['A', 'B', 'C'], ['v', 'w', 'x', 'y', 'z'], # [10, 20], fillvalue='Abscent'): for y in x: print(y) # A # v # 10 # B # w # 20 # C # x # Abscent # Abscent # y # Abscent # Abscent # z # Abscent
Top comments (0)