擅长:python、mysql、java
<p>您可以检查传递的项是否可iterable,根据您可以处理它:</p>
<pre><code>>>> from collections import Iterable
def do_something(X):
f = lambda x: x**2
if isinstance(X, Iterable):
return map(f, X)
return f(X)
>>> do_something([1, 2, 3, 4])
[1, 4, 9, 16]
>>> do_something(2)
4
>>> do_something(iter(range(3, 7)))
[9, 16, 25, 36]
</code></pre>
<p>如果要在第二种情况下返回<code>[4]</code>,则需要将其修改为:</p>
<pre><code>def do_something(X):
return map(lambda x: x**2, X if isinstance(X, Iterable) else [X])
</code></pre>