[問題] 有無可能一次為函式建立多個input?

看板Python作者 (刃之56)時間13年前 (2012/03/26 19:58), 編輯推噓2(203)
留言5則, 4人參與, 最新討論串1/1
這想法是從matlab來的。 matlab 中可以用cell 這個資料型態,一次把函式塞進多個input arguments -------------------------------------------------------------------- 例一: >> s = {'abc', 'mno', 'xyz'}; >> strcat(s{:}) ans = abcmnoxyz 此時 strcat(s{:}) 語法同等於 strcat('abc', 'mno', 'xyz') -------------------------------------------------------------------- 例二: >> r = {2,5}; >> rand(r{:}) ans = 0.6557 0.8491 0.6787 0.7431 0.6555 0.0357 0.9340 0.7577 0.3922 0.1712 此時 rand(r{:}) 語法同等於 rand(2,5) --------------------------------------------------------------------- 也就是說,展開 cell的時候(用{:}的語法),被展開的內容會填入函式被當作參數。所以 可以將數個參數包成一個cell等到要使用函式的時候展開。 有時候這樣的語法會很方便, 尤其是在程式一開始並不能確定函式參數數量的時候很有用。 不知道python 有沒有這樣的語法,是否 list 或是 dictionary 可以用一些方法類比到 matlab 裡cell這樣的語法呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.34.30.120

03/27 04:10, , 1F
*arg
03/27 04:10, 1F

03/27 04:10, , 2F

03/27 15:12, , 3F
在sequence前加*可以拆開它(其實大部分collection都可)
03/27 15:12, 3F

03/27 15:12, , 4F
**用來拆mapping
03/27 15:12, 4F

03/28 00:55, , 5F
謝謝大家的解答!
03/28 00:55, 5F
文章代碼(AID): #1FSCfgIQ (Python)