作者cog5566 (刃之56)
看板Python
標題[問題] 有無可能一次為函式建立多個input?
時間Tue Mar 27 03:58:31 2012
這想法是從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
→ buganini:*arg 03/27 04:10
推 mikapauli:在sequence前加*可以拆開它(其實大部分collection都可) 03/27 15:12
→ mikapauli:**用來拆mapping 03/27 15:12
→ cog5566:謝謝大家的解答! 03/28 00:55