簡體   English   中英

將列表中的任意數量的參數傳遞給函數?

[英]Passing arbitrary number of arguments from list into function?

我有一個函數,它接受一個輸入,然后一個* arg包含一個兩元素元組的序列。 我還有一個SQL命令,根據我的數據庫中的內容生成這樣的元組列表。 這一切都很好,但我不知道如何將這些元組傳遞給函數。

我已經嘗試將代碼組裝成一個字符串,然后用exec()執行它,無論如何都是草率的,但是甚至不起作用,因為exec忽略了函數中的return()值(包含我需要的輸出)( )。 我已經嘗試了eval(),它不起作用,因為被調用的函數有輸入和eval無法處理的其他實際代碼; 它只評估表達式。 我不認為我可以直接調用元組列表中的函數,因為那將被視為一個參數而不是(在這個具體示例中)三個,不是嗎?

那么我應該如何將這個元組列表傳遞給我的函數,如果我有:

TupleList = [('a','b'),('c','d'),('e','f')]
Func(Argument1, *Args)

我想打電話給:

Func('ConstantValue',('a','b'),('c','d'),('e','f'))

同時仍然保留Func()的return()?

def foo(arg1, *args):
    print(arg1)
    for arg in args:
        print(arg)

spam = [('a', 'b'), ('c', 'd'), ('e', 'f')]

foo('ConstantValue', *spam)

# or which yield same result
foo('ConstantValue', ('a', 'b'), ('c', 'd'), ('e', 'f'))

產量

ConstantValue
('a', 'b')
('c', 'd')
('e', 'f')
ConstantValue
('a', 'b')
('c', 'd')
('e', 'f')
>>>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM