python数组作为参数列表

16 投票
3 回答
30534 浏览
提问于 2025-04-16 11:35

我有一个数组,这个数组的内容可以用来作为一个函数的参数:

        TmpfieldNames = []
        TmpfieldNames.append(Trademark.name)
        TmpfieldNames.append(Trademark.id)
        return func(Trademark.name, Trademark.id)

func(Trademark.name.Trademark.id) 这样调用是可以的,但 func(TmpfieldNames) 这样调用就不行。有没有办法在不直接指定数组元素的情况下调用这个函数,比如不想写成 func(TmpfieldNames[0], TmpfieldNames[1]) 这样?

3 个回答

2

你要找的是:

func(*TmpfieldNames)

不过,这并不是这种功能的常见用法;我猜想你是为了演示而创建的。

17

我觉得你想要的就是这个:

def f(a, b):
    print a, b

arr = [1, 2]
f(*arr)
40

使用 * 可以把列表(list)或元组(tuple)里的参数拆开,而 ** 则是用来拆开字典(dict)里的参数。

>>> range(3, 6)             # normal call with separate arguments
[3, 4, 5]
>>> args = [3, 6]
>>> range(*args)            # call with arguments unpacked from a list
[3, 4, 5]

这是来自于 文档的一个例子。

撰写回答