bin*_*unt 5 python arguments list argument-unpacking map-function
我确信有办法做到这一点,但我找不到它.说我有:
foo = [
[1, 2],
[3, 4],
[5, 6]
]
def add(num1, num2):
return num1 + num2
Run Code Online (Sandbox Code Playgroud)
然后,我如何使用map(add, foo)它传递num1=1,num2=2第一次迭代,即它add(1, 2),然后add(3, 4)第二次,等等?
map(add, foo)显然尝试add([1, 2], #nothing)第一次迭代map(add, *foo)做add(1, 3, 5)了第一次迭代我希望在第一次迭代时map(add, foo)做类似的事情add(1, 2).
预期产量: [3, 7, 11]
听起来你需要starmap:
>>> import itertools
>>> list(itertools.starmap(add, foo))
[3, 7, 11]
Run Code Online (Sandbox Code Playgroud)
这会[a, b]从列表中解析每个参数foo,并将它们传递给函数add.与itertools模块中的所有工具一样,它返回一个迭代器,您可以使用list内置函数来使用该迭代器.
从文件:
使用而不是
map()在参数参数已经从单个可迭代的元组中分组时(数据已经"预先压缩").之间的差异map()和starmap()相似之处之间的区别function(a,b)和function(*c).
| 归档时间: |
|
| 查看次数: |
373 次 |
| 最近记录: |