当前位置:  开发笔记 > 编程语言 > 正文

解包嵌套列表以获取map()的参数

如何解决《解包嵌套列表以获取map()的参数》经验,为你挑选了1个好方法。

我确信有办法做到这一点,但我找不到它.说我有:

foo = [
    [1, 2],
    [3, 4],
    [5, 6]
]

def add(num1, num2):
    return num1 + num2

然后,我如何使用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]



1> Alex Riley..:

听起来你需要starmap:

>>> import itertools
>>> list(itertools.starmap(add, foo))
[3, 7, 11]

这会[a, b]从列表中解析每个参数foo,并将它们传递给函数add.与itertools模块中的所有工具一样,它返回一个迭代器,您可以使用list内置函数来使用该迭代器.

从文件:

使用而不是map()在参数参数已经从单个可迭代的元组中分组时(数据已经"预先压缩").之间的差异map()starmap()相似之处之间的区别function(a,b)function(*c).

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有