2024-09-28 20:50:34 发布
网友
考虑这个最小的例子:
def arfunc(x,*a): sa=a[1] return sa b=arfunc(1.,(5.,2.)) print(b)
我需要传递一个数组,它的长度可能因函数而异,然后处理该函数中的各个数组元素。如果我在函数中用a[0]交换a[1],则返回整个列表。为什么这不起作用,我该怎么做呢?在
a[0]
a[1]
你错过了一件事,那就是如果我们必须通过一个需要添加*(星号)的函数传递可变长度参数(python中称为任意参数)
def arfunc(x,*a): # here *a can hold argument that may vary in numbers. sa=a[1] return sa b=arfunc(1.,*(5.,2.)) # here you also have to provide a arbitary arguments like this. print(b)
为了更好地理解,请参考以下书面代码:
接受变量参数(*args)的函数需要它们作为多个参数:
*args
b=arfunc(1., 5., 2.) print(b)
如果要像以前那样使用函数,请删除星号:
函数定义中的符号允许函数具有可变类型。变量a将成为第一个变量之后传递的所有位置参数的集合:x。在
不需要使用*符号来让a具有可变长度。列表在Python中已经具有该属性。在
你错过了一件事,那就是如果我们必须通过一个需要添加*(星号)的函数传递可变长度参数(python中称为任意参数)
为了更好地理解,请参考以下书面代码:
^{pr2}$接受变量参数(
*args
)的函数需要它们作为多个参数:如果要像以前那样使用函数,请删除星号:
^{pr2}$函数定义中的符号允许函数具有可变类型。变量a将成为第一个变量之后传递的所有位置参数的集合:x。在
不需要使用*符号来让a具有可变长度。列表在Python中已经具有该属性。在
相关问题 更多 >
编程相关推荐