gpt4 book ai didi

python - 如何在python中映射具有多个参数的函数

转载 作者:太空宇宙 更新时间:2023-11-03 15:49:12 25 4
gpt4 key购买 nike

我正在寻找映射具有特定参数列表的函数。

def add(x, y):
return(x + y)

list1 = [1, 2, 3]
list2 = [3, 4, 5]

经过一些研究,我已经能够使用 maplambda 函数成功地做到这一点。

list(map(lambda x, y: add(x, y), list1, list2))

我想知道,使用迭代器是否更好?我尝试了以下但无法弄清楚:

[add(x, y), for x, y in list1, list2]

[add(x, y), for x in list1 for y in list2]

提前致谢!

最佳答案

这里没有需要使用lambda表达式,你可以直接传递一个对te函数的引用:

list(map(<b>add</b>, list1, list2))

如果你想使用列表理解,你可以使用zip :

[add(x, y) for x, y in <b>zip(</b>list1, list2<b>)</b>]

zip 采用 n 个可迭代对象,并生成 n 个元组,其中第 i 个元组包含 < em>i - 每个可迭代对象的第一个元素。

如果您想为某些参数添加默认值,可以使用 functools 中的 partial。例如,如果您定义一个:

def add (x, y, a, b):
return x + y + a + b
<b>from functools import partial</b>

list(map(<b>partial(</b>add<b>, a=3, b=4)</b>, list1, list2))

这里 xy 被称为未命名参数,abpartial 添加为 named 参数。

或者列表理解:

[add(x, y<b>, 3, 4</b>) for x, y in zip(list1, list2)]

关于python - 如何在python中映射具有多个参数的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47859209/

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