如何访问函数中数组参数的元素?

2024-09-28 20:53:16 发布

您现在位置:Python中文网/ 问答频道 /正文

考虑这个极小的例子:

def arfunc(x,*a):
    sa=a[1]
    return sa

b=arfunc(1.,(5.,2.))
print(b)

我需要传递一个数组,该数组的长度可能因函数而异,然后处理该函数中的单个数组元素。如果在函数中通过a[0]交换a[1],则返回整个列表。为什么这不起作用,我如何使它起作用


Tags: 函数元素列表returndefsa数组例子
3条回答

采用变量参数(*args)的函数期望它们作为多个参数:

b=arfunc(1., 5., 2.)
print(b)

如果要像以前那样使用该函数,请删除星号:

def arfunc(x, a):
    ...

函数定义中的符号允许函数具有可变类型。变量a将成为在第一个变量之后传递的所有位置参数的集合:x

无需使用*符号使a具有可变长度。列表在Python中已经具有该属性

您遗漏了一件事,那就是如果我们必须用需要添加*(星号)的函数传递可变长度参数(在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)

为了更好地理解,请参阅以下书面代码:

def arfunc(x,*a):
    sa=a[1]
    return sa

d = 1.
e = (5.,2.)

b=arfunc(d,*e)
print(b)

相关问题 更多 >