我有一個函數f(* args)。用戶輸入一串用逗號分隔的單詞,我用.split(',')將它分成一個列表。我希望能夠在列表中有n個單詞的情況下調用函數f(word1,word2,...,wordn)。我怎樣才能做到這一點?在Python中,將變長列表的每個元素都變成函數調用?
請注意,我只想將f定義爲f(list)並只輸入列表,但教師要求我們使用f(* args)。
示例:用戶輸入'hi,church,banana',我分成列表['hi','church','banana'],我想打電話給f('hi','church' '香蕉')。我不知道如何做最後一步,因爲用戶可以輸入任意數量的單詞。
你試過了什麼?你的問題在哪裏?在知道要傳遞的內容而不是'list'還是解析函數定義中的'* args'? – xnx 2014-12-04 17:34:18
@xnx無論列表長度是多少,我都希望能夠調用f(word1,word2,...,wordn)給出一個列表中的值。我不知道該怎麼做,因爲我不能只做f(list [0],list [1],list [2]),因爲列表可以是任意長度。而已。 – MCT 2014-12-04 17:38:28
你無法像你想的那樣稱呼它,正是因爲你不知道你會有多少個參數。閱讀一下'*'操作符實際做了什麼,你會意識到你可以在任何地方使用它 - 而不僅僅是當你解開參數時。 – 2014-12-04 17:43:30