作者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
1F:→ buganini:*arg 03/27 04:10
3F:推 mikapauli:在sequence前加*可以拆开它(其实大部分collection都可) 03/27 15:12
4F:→ mikapauli:**用来拆mapping 03/27 15:12
5F:→ cog5566:谢谢大家的解答! 03/28 00:55