Gab*_*iel 0 python arrays numpy list
我知道如何检查列表是否为空(检查列表是否为空的最佳方法)以及如何检查numpy数组是否为空(如何检查 numpy 数组是否为空?)
我有一个元素,有时可以是列表,有时可以是数组。我需要检查这个元素是否为空,而不事先知道它是哪一个。我可以考虑做
if isinstance(a, list):
if a:
# do something
elif a.any():
# do something
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有一种更Pythonic的方式来做到这一点?
您可以使用该size属性。
a = np.asarray(a) # converts it to an array if it's not an array.
if a.size == 0:
# it's empty!
Run Code Online (Sandbox Code Playgroud)
这也适用于列表,因为np.asarray. 如果它不为空,您还没有指定要执行的操作,但考虑到您允许s ,操作很可能会将其转换为数组,因此-callnumpy.ndarray不会有太多开销np.asarray
如果您真的不想要以下开销np.asarray:
if not getattr(a, 'size', len(a)): # However this does not work on numpy scalars
# it's empty
Run Code Online (Sandbox Code Playgroud)