我是一名初学Python的人。现在我需要声明一个大小为20的数组并将其传递给一个函数。
期望接收该数组的函数如下:
function(*args)
< p > args
是传递给 function()
的输入参数。
请问有人能帮我,如何在 Python 中传递数组?
我是一名初学Python的人。现在我需要声明一个大小为20的数组并将其传递给一个函数。
期望接收该数组的函数如下:
function(*args)
< p > args
是传递给 function()
的输入参数。
请问有人能帮我,如何在 Python 中传递数组?
list
,因为它在Python中经常用于其他语言中使用数组的情况。Python实际上有几种数组类型:list
、tuple
和 array
;流行的第三方模块Numpy也提供了一种数组类型。*args
参数定义的函数,您需要在函数调用中使用*
运算符来解压缩列表。def function(*args):
print(args)
for u in args:
print(u)
#Create a list of 5 elements
a = list(range(5))
print(a)
function(*a)
输出
[0, 1, 2, 3, 4]
(0, 1, 2, 3, 4)
0
1
2
3
4
请注意,当function
打印args
时,输出显示为圆括号()
,而不是方括号[]
。这是因为方括号表示列表,圆括号表示元组。在对function
进行调用时,*a
将a
列表解包为单独的参数,但在function
定义中的*arg
将它们重新打包成元组。*
的更多信息,请参见Python教程中的任意参数列表和解包参数列表。还可以查看Python参数中的**(双星号)和*(星号)有什么作用?。bytes
和 bytearray
也是数组类型,尽管(如名称所示)它们只能容纳字节值。有关详细信息,请参见 https://docs.python.org/3/library/stdtypes.html#binary-sequence-types-bytes-bytearray-memoryview。 - PM 2Ring大小并不重要。
只需将list
传递给函数即可。
def foo(mylist):
# do whatever you want with array here
pass
你不需要使用*args
序列解包来实现该目的。
我认为你需要的比预期的要容易:
def arrayIn(arrayFunc):
print(arrayFunc)
arraySize = 20
mineArray = [None]*arraySize
arrayIn(mineArray)
function(array)
一样简单。 - Adib*args
将会解包args
。因此,function
必须至少接受len(args)
个参数。 - user5547025