问题描述
>>> isinstance([0, 10, 20, 30], list)
True
>>> isinstance(50, list)
False
要支持任何类型的序列,请选中collections.Sequence
而不是list
。
:isinstance
还支持一个元组类,type(x) in (..., ...)
应避免检查,这是不必要的。
您可能还想检查 not isinstance(x, (str, unicode))
解决方法
我有一个接受参数的函数NBins
。我想用标量50
或数组对此函数进行调用[0,10,20,30]
。我如何识别函数的长度NBins
是多少?或换句话说,如果它是标量或向量?
我尝试了这个:
>>> N=[2,3,5]
>>> P = 5
>>> len(N)
3
>>> len(P)
Traceback (most recent call last):
File "<stdin>",line 1,in <module>
TypeError: object of type 'int' has no len()
>>>
正如你看到的,我不能申请len
到P
,因为它不是一个数组....有什么样isarray
或isscalar
在Python?
谢谢