擅长:python、mysql、java
<p>如果这是在很多函数中都要做的事情,那么可以使用Python decorator。这里有一个简单但有用的方法。在</p>
<pre><code>def threads_over_lists(fn):
def wrapped(x, *args, **kwargs):
if isinstance(x, list):
return [fn(e, *args, **kwargs) for e in x]
return fn(x, *args, **kwargs)
return wrapped
</code></pre>
<p>这样,只需在函数前面添加<code>@threads_over_lists</code>行,就可以使它这样运行。例如:</p>
^{pr2}$
<p>您还应该考虑是希望它只对列表进行矢量化,还是对其他iterable对象(如元组和生成器)进行矢量化。<a href="https://stackoverflow.com/questions/1952464/in-python-how-do-i-determine-if-a-variable-is-iterable">This</a>是一个有用的StackOverflow问题,用于确定这一点。但是要小心-字符串是iterable的,但您可能不希望函数对其中的每个字符进行操作。在</p>