2011-02-10 104 views
4

名單我有一個函數的參數相匹配的數組:蟒蛇數組作爲參數

 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])陣列?

+0

該代碼沒有意義。你只需用`len(fieldNames)``(Tademark.id`的引用)來填充一個列表,然後用一個`Trademark.name`和`Trademark.id`返回一個函數的結果。 (編輯:好吧,這更有意義) – delnan 2011-02-10 17:48:38

+1

可能的重複[我如何爆炸一個元組,使它可以作爲參數列表傳遞?](http://stackoverflow.com/questions/3198218/how-can- i-explode-a-tuple-so-it-it-that-it-pass-as-a-parameter-list) – etarion 2011-02-10 18:04:36

回答

11

我想你正在尋找的是這樣的:

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

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

你所尋找的是:

func(*TmpfieldNames) 

但是,這不是典型的用例這樣的功能;我假設你已經創建它進行演示。

18

隨着*你可以從listtuple**解壓參數從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] 

來自documentation的示例。