dask.bag.Bag.starmap

dask.bag.Bag.starmap

Bag.starmap(func, **kwargs)[源代码]

使用给定包中的参数元组应用函数。

这与 itertools.starmap 类似,但它也接受关键字参数。用伪代码表示,这可以写成:

>>> def starmap(func, bag, **kwargs):
...     return (func(*args, **kwargs) for args in bag)
参数
函数可调用
**kwargsItem, Delayed, 或 object, 可选

传递给 func 的额外关键字参数。这些可以是普通对象、dask.bag.Itemdask.delayed.Delayed

示例

>>> import dask.bag as db
>>> data = [(1, 2), (3, 4), (5, 6), (7, 8), (9, 10)]
>>> b = db.from_sequence(data, npartitions=2)

对每个参数元组应用一个函数:

>>> from operator import add
>>> b.starmap(add).compute()
[3, 7, 11, 15, 19]

对每个参数元组应用一个函数,并带有额外的关键字参数:

>>> def myadd(x, y, z=0):
...     return x + y + z
>>> b.starmap(myadd, z=10).compute()
[13, 17, 21, 25, 29]

关键字参数也可以是 dask.bag.Itemdask.delayed.Delayed 的实例:

>>> max_second = b.pluck(1).max()
>>> max_second.compute()
10
>>> b.starmap(myadd, z=max_second).compute()
[13, 17, 21, 25, 29]