如何使此函数独立于参数X和的可写性而正确工作,而无需任何if/else条件?你知道吗
我想这个问题以前有人问过/回答过,但我什么也没找到。你知道吗
def do_something(X):
return map(lambda x: x ,X)
# Possible input:
do_something([1,2,3]) #-> [1,2,3]
do_something(1) # -> [1]
编辑:
我希望标量参数被视为一维单元素数组,例如1->;[1],因此返回值应该始终是一个列表。你知道吗
Numpy解决方案:
刚刚意识到numpy提供了以下功能:
import numpy
def do_something(X):
return map(lambda x: x ,numpy.atleast_1d(X))
所以现在的问题是:“有没有一种方法可以实现同样的不进口numpy”?你知道吗
您可以检查传递的项是否可iterable,根据您可以处理它:
如果要在第二种情况下返回
[4]
,则需要将其修改为:我建议在助手函数中隐藏不希望看到的内容:
然后在使用参数时,将其包装为对helper函数的调用:
EAFP。你知道吗
基本上,您可以使用给定的
X
尝试map
,如果失败,您可以使用包含X
的单个元素列表重试。你知道吗请注意,如果您的函数可以引发
TypeError
,那么您需要以某种方式检查错误是由map
还是由它调用的函数引发的。这是可能的。。。用if
语句。你知道吗相关问题 更多 >
编程相关推荐