Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 检查列表或数组元素是否为空_Python_Arrays_List_Numpy - Fatal编程技术网

Python 检查列表或数组元素是否为空

Python 检查列表或数组元素是否为空,python,arrays,list,numpy,Python,Arrays,List,Numpy,我知道如何检查列表是否为空()以及如何检查numpy数组是否为空() 我有一个元素,有时是列表,有时是数组。我需要检查这个元素是否为空,而事先不知道它是哪一个。我能想到做什么 if isinstance(a, list): if a: # do something elif a.any(): # do something 但是我想知道是否有一种更像python的方法来实现这一点?您可以使用该属性 a = np.asarray(a) # converts it

我知道如何检查列表是否为空()以及如何检查
numpy
数组是否为空()

我有一个元素,有时是列表,有时是数组。我需要检查这个元素是否为空,而事先不知道它是哪一个。我能想到做什么

if isinstance(a, list):
    if a:
        # do something
elif a.any():
    # do something
但是我想知道是否有一种更像python的方法来实现这一点?

您可以使用该属性

a = np.asarray(a)  # converts it to an array if it's not an array.
if a.size == 0:
    # it's empty!
这也适用于列表,因为
np.asarray
。如果它不是空的,您没有指定要执行的操作,但是如果您允许
numpy.ndarray
s,那么操作很可能会将其转换为数组,因此
np.asarray
-调用不会有太多开销

如果您真的不想要
np.asarray
的开销:

if not getattr(a, 'size', len(a)):  # However this does not work on numpy scalars
    # it's empty
您可以使用该属性

a = np.asarray(a)  # converts it to an array if it's not an array.
if a.size == 0:
    # it's empty!
这也适用于列表,因为
np.asarray
。如果它不是空的,您没有指定要执行的操作,但是如果您允许
numpy.ndarray
s,那么操作很可能会将其转换为数组,因此
np.asarray
-调用不会有太多开销

如果您真的不想要
np.asarray
的开销:

if not getattr(a, 'size', len(a)):  # However this does not work on numpy scalars
    # it's empty

我喜欢第二种解决方案:)我怀疑OP与“标量”数组无关。我很少处理这些问题;如果我这样做了,我就不会问它是不是空的。所以
len(a)
的答案可能非常有用。我不怀疑,但是
np.asarray
(或者
np.asanyarray
,当子类应该通过时)在我看来是“最具python风格的方法”。至少如果在
a
上使用numpy函数,它们会将其强制转换为数组。我喜欢第二种解决方案:)我怀疑OP与“标量”数组无关。我很少处理这些问题;如果我这样做了,我就不会问它是不是空的。所以
len(a)
的答案可能非常有用。我不怀疑,但是
np.asarray
(或者
np.asanyarray
,当子类应该通过时)在我看来是“最具python风格的方法”。至少如果在
a
上使用numpy函数,它们会将其强制转换为数组。列表和数组的代码是否相同?是的,如果元素不为空,则执行相同的代码。列表和数组的代码是否相同?是的,如果元素不为空,则执行相同的代码。