在 Python (3.x) 中使用不同的参数连续多次调用一个函数?
Calling a function multiple times consecutively with different arguments in Python (3.x)?
我有一段代码如下所示:
myfunction(a, b, c)
myfunction(d, e, f)
myfunction(g, h, i)
myfunction(j, k, l)
参数个数不变,但函数必须每次用不同的值连续调用。这些值不是自动生成的,而是手动输入的。是否有内联解决方案可以在不创建调用此函数的函数的情况下执行此操作?类似于:
myfunction(a, b, c)(d, e f)(g, h, i)(j, k, l)
感谢任何帮助。提前致谢!
我想你想做的是这样的...
myfunction(myfunction(d, e, f), myfunction(g, h, i), myfunction(j, k, l))
您好,我不确定这是否是最符合 Python 风格的方式,但是如果您在列表中定义了参数,则可以在循环中调用该函数,并从列表的开头删除 n 参数:
查看示例代码:
def myfunction(x1,x2,x3):
return x1+x2+x3
arglist = [1,2,3,4,5,6,7,8,9]
for _ in range(3):
print myfunction(arglist[_+0],arglist[_+1],arglist[_+2])
# remove used arguments from the list
arglist= arglist[2:]
简单,使用元组解包
tripples = [('a', 'b', 'c'), ('d', 'e', 'f'), ('g', 'h', 'i'), ('j', 'k', 'm')]
for tripple in tripples:
print(myfunction(*tripple))
我很惊讶没有人提到 map
map(func, iter)
它将 iter
中的每个可迭代映射到第一个参数中传递的 func
。
对于您的用例,它应该看起来像
map(myfunction, *zip((a, b, c), (d, e, f), (g, h, i), (j, k, l)))
您可能会在此处滥用列表理解
[myfunction(*item) for item in ((a, b, c), (d, e, f), (g, h, i), (j, k, l))]
我有一段代码如下所示:
myfunction(a, b, c)
myfunction(d, e, f)
myfunction(g, h, i)
myfunction(j, k, l)
参数个数不变,但函数必须每次用不同的值连续调用。这些值不是自动生成的,而是手动输入的。是否有内联解决方案可以在不创建调用此函数的函数的情况下执行此操作?类似于:
myfunction(a, b, c)(d, e f)(g, h, i)(j, k, l)
感谢任何帮助。提前致谢!
我想你想做的是这样的...
myfunction(myfunction(d, e, f), myfunction(g, h, i), myfunction(j, k, l))
您好,我不确定这是否是最符合 Python 风格的方式,但是如果您在列表中定义了参数,则可以在循环中调用该函数,并从列表的开头删除 n 参数:
查看示例代码:
def myfunction(x1,x2,x3):
return x1+x2+x3
arglist = [1,2,3,4,5,6,7,8,9]
for _ in range(3):
print myfunction(arglist[_+0],arglist[_+1],arglist[_+2])
# remove used arguments from the list
arglist= arglist[2:]
简单,使用元组解包
tripples = [('a', 'b', 'c'), ('d', 'e', 'f'), ('g', 'h', 'i'), ('j', 'k', 'm')]
for tripple in tripples:
print(myfunction(*tripple))
我很惊讶没有人提到 map
map(func, iter)
它将 iter
中的每个可迭代映射到第一个参数中传递的 func
。
对于您的用例,它应该看起来像
map(myfunction, *zip((a, b, c), (d, e, f), (g, h, i), (j, k, l)))
您可能会在此处滥用列表理解
[myfunction(*item) for item in ((a, b, c), (d, e, f), (g, h, i), (j, k, l))]