在Python(3.x)中使用不同的参数连续多次调用函数?

时间:2017-12-03 06:45:25

标签: python python-3.x function shortcut

我有一段看起来像这样的代码:

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)

任何帮助表示赞赏。提前谢谢!

5 个答案:

答案 0 :(得分:4)

简单,使用元组解包

tripples = [('a', 'b', 'c'), ('d', 'e', 'f'), ('g', 'h', 'i'), ('j', 'k', 'm')]
for tripple in tripples:
    print(myfunction(*tripple))

答案 1 :(得分:2)

我很惊讶没有人提到map

map(func, iter)

它将iter中的每个可迭代对象映射到在第一个参数中传递的func

对于您的用例,它应该看起来像

map(myfunction, *zip((a, b, c), (d, e, f), (g, h, i), (j, k, l)))

答案 2 :(得分:0)

嗨我不确定它是否是最pythonic的方式,但如果您在列表中定义了参数,则可以在循环中调用该函数,并从列表的开头删除n参数:

查看示例代码:

{{1}}

答案 3 :(得分:0)

您可以在此处滥用列表理解

[myfunction(*item) for item in ((a, b, c), (d, e, f), (g, h, i), (j, k, l))]

答案 4 :(得分:-2)

我认为你想要做的就是这样......

myfunction(myfunction(d, e, f), myfunction(g, h, i), myfunction(j, k, l))