Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从列表中获取的函数参数_Python_Function_Python 3.x_Parameter Passing - Fatal编程技术网

Python 从列表中获取的函数参数

Python 从列表中获取的函数参数,python,function,python-3.x,parameter-passing,Python,Function,Python 3.x,Parameter Passing,所以我有一个函数,它接受多个值: def kgV(a,b, *rest): #the function itself doesnt matter for the question #beside that it returns an int no matter how many arguments where passed 现在我有了一个列表或范围() 现在,我希望能够将list或range作为参数赋予我的函数,这样它就可以像我将range或list的每个int作为参数一样工作 #how ca

所以我有一个函数,它接受多个值:

def kgV(a,b, *rest):
#the function itself doesnt matter for the question
#beside that it returns an int no matter how many arguments where passed
现在我有了一个列表或范围()

现在,我希望能够将list或range作为参数赋予我的函数,这样它就可以像我将range或list的每个int作为参数一样工作

#how can i make this work?

kgV(myRange)
kgV(myList)
我尝试了一些事情,比如:因为我在等 但他们都返回了错误:-/

编辑:我刚刚用一个帮助函数解决了这个问题,但这似乎是一个非常不符合python的方法,那么有没有更符合python/通用的方法呢

def kgVList(liste):
    result = liste[0]
    for i in liste:
        result = kgV(i, result)
    return result

您可以像这样简单地解压这些值:

kgV(*a)

更准确一点。如果a和b是参数,则两个函数调用都将不起作用,因为缺少一个参数。当您保留这两个参数时,是否要为a和b的所有组合的每个值调用函数,还是什么?如果a[0]和a[1]应反映参数a,b,则此代码毫无意义(但可由Matthias answer解决)。不确定a[0]和a[1]是否应指a,b?那怎么说不通呢?这是一件屡见不鲜的事。更进一步地说,我想知道相反的情况:以上帝的名义,如果不是那样,那又有什么意义呢?我问sersioulsy,因为我似乎遗漏了什么。因为方法本身根本没有意义,独立于kgV函数。使用不同大小的列表填充的命名参数,以便在从列表弹出时填充某些命名参数?嗯:-)在kgVList中使用reduce是一种类似python的方法,尽管很多人都鄙视这个函数,但我还是不明白。我想要的只是一个例子:kgV([2,3,4,5])与kgV(2,3,4,5)具有相同的结果。kgV函数中的*rest可以处理任何额外传递的参数。哦,我读过关于reduce的文章,听起来很有趣,但是它没有在python 3中实现。很明显,我不明白为什么要传递许多参数而不是列表。我不明白这个例子,在我看来这是非常不寻常的。(列表中的某些部分将是rest的一部分;如果基数为1,则应该失败;我认为参数的数量有内部限制,但我不确定)。您正在大量使用的变量参数的特性在经典编程语言中并不常用,我打赌这是有原因的。(是的,有新的C++版本支持这些东西)是的。哎呀。这正是我要找的!非常高兴-虽然我已经学习了多个python教程,但没有一个能做到这一点。有没有更深入的教程来介绍这些很酷的东西,或者我自己是如何发现这些东西的?我不记得我是怎么找到它的,但它被称为参数(un)打包。如果你去寻找的话,你会发现很多东西值得一读。
kgV(*a)