gpt4 book ai didi

python - 解压 map() 参数的嵌套列表

转载 作者:太空狗 更新时间:2023-10-30 00:44:07 24 4
gpt4 key购买 nike

我确定有一种方法可以做到这一点,但我还没有找到它。假设我有:

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]

最佳答案

听起来你需要starmap :

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

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

来自文档:

Used instead of map() when argument parameters are already grouped in tuples from a single iterable (the data has been “pre-zipped”). The difference between map() and starmap() parallels the distinction between function(a,b) and function(*c).

关于python - 解压 map() 参数的嵌套列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34110317/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com