将列表传递给函数代替许多参数

时间:2018-06-06 18:49:29

标签: python list

首先,如果一个类似的问题得到解决,我道歉。我看了但没有运气(可能是我不知道如何正确搜索这个问题。)在最简单的形式中,假设我们有以下内容:

def func(x, a, b):
    return a*x + b*b

c = [2, 3]

您如何使用func(x, c)之类的功能?具体来说,不是将整个数组的元素写成函数的参数,而是如何干净地代替参数引用数组呢?

2 个答案:

答案 0 :(得分:2)

您可以使用扩展可迭代解包运算符

def func(x, a, b):
    return a*x + b*b

c = [2, 3]
func(x,*c) 

答案 1 :(得分:1)

答案可能是:打包

当我们不知道需要将多少个参数传递给python函数时,我们可以使用Packing将所有参数打包到元组中。

# A Python program to demonstrate use
# of packing

# This function uses packing to sum
# unknown number of arguments
def mySum(*args):
    sum = 0
    for i in range(0, len(args)):
        sum = sum + args[i]
    return sum

# Driver code
print(mySum(1, 2, 3, 4, 5))
print(mySum(10, 20))