将数组/列表传递到Python

2024-04-25 23:22:27 发布

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

我一直在研究将数组或列表(Python倾向于调用它们)传递到函数中。

我读到一些关于使用*args的文章,比如:

def someFunc(*args)
    for x in args
        print x

但不确定这是对还是错。似乎没有什么能像我想要的那样工作。我以前能够轻松地将数组传递到PHP函数中,这让我很困惑。似乎我也做不到:

def someFunc(*args, someString)

因为它会抛出一个错误。

我想我只是把自己弄糊涂了,想找个人帮我澄清一下。


Tags: 函数in列表fordef错误文章args
3条回答

您可以像传递其他类型一样传递列表:

l = [1,2,3]

def stuff(a):
   for x in a:
      print a


stuff(l)

这将打印列表l。请记住,列表是作为引用传递的,而不是作为深层副本传递的。

Python列表(不仅仅是数组,因为它们的大小可以动态更改)是普通的Python对象,可以作为任何变量传递给函数。*语法用于解包列表,这可能不是您现在想要做的事情。

使用以下语法定义函数时:

def someFunc(*args)
    for x in args
        print x

你告诉它你期望的参数数目是可变的。如果要传入列表(来自其他语言的数组),请执行以下操作:

def someFunc(myList = [], *args)
    for x in myList:
        print x

你可以这样称呼它:

items = [1,2,3,4,5]

someFunc(items)

您需要在变量参数之前定义命名参数,在关键字参数之前定义变量参数。你也可以这样做:

def someFunc(arg1, arg2, arg3, *args, **kwargs)
    for x in args
        print x

它至少需要三个参数,并支持其他参数和关键字参数的可变数目。

相关问题 更多 >

    热门问题