use*_*752 2 python map iterable-unpacking
在Python中*使用map内置函数时,有没有办法用习语解包元组?
理想情况下,我想做以下事情:
def foo(a, b):
return a**2 + b
x = [(1,2), (3,4), (5,6)]
results = map(foo, *x)
Run Code Online (Sandbox Code Playgroud)
结果会相等 [3, 13, 31]
您正在寻找itertools.starmap:
def foo(a, b):
return a**2 + b
x = [(1,2), (3,4), (5,6)]
from itertools import starmap
starmap(foo, x)
Out[3]: <itertools.starmap at 0x7f40a8c99310>
list(starmap(foo, x))
Out[4]: [3, 13, 31]
Run Code Online (Sandbox Code Playgroud)
请注意,即使在python 2中,也会starmap返回一个必须手动使用的迭代list.
| 归档时间: |
|
| 查看次数: |
86 次 |
| 最近记录: |