如何检查数组是否不为空?我尝试了这样做:
if not self.table[5] is None:
这是正确的方式吗?
问题中没有提到numpy。如果你所说的 array 指的是列表,那么如果将列表视为布尔值,则列表有项时返回True,为空时返回False。
l = []
if l:
print "list has items"
if not l:
print "list is empty"
使用将 a
定义为一个 NumPy数组,然后执行以下操作:
if a.size:
print('array is not empty')
(在Python中,像[1,2,3]
这样的对象被称为列表(lists),而不是数组(arrays)。)
len(self.table)
检查数组的长度,因此您可以使用if语句来判断列表的长度是否大于0(非空):
Python 2:
if len(self.table) > 0:
#Do code here
Python 3:
if(len(self.table) > 0):
#Do code here
也可以使用
if self.table:
#Execute if self.table is not empty
else:
#Execute if self.table is empty
判断列表是否为空。
if self.table:
print 'It is not empty'
也可以
print(len(a_list))
len()
函数,在Python中也可以使用它来回答您的问题。如果输出不是0
,则列表不为空。array
(通过 import array from array
可用),那么最少惊讶原则适用,并且您可以检查它是否为空,方法与检查列表是否为空相同。from array import array
an_array = array('i') # an array of ints
if an_array:
print("this won't be printed")
an_array.append(3)
if an_array:
print("this will be printed")
我还无法进行评论,但需要提到的是,如果您使用的是包含多个元素的numpy数组,则会失败:
if l:
print "list has items"
elif not l:
print "list is empty"
错误将会是:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
一种简单的方法是使用布尔表达式:
if not self.table[5]:
print('list is empty')
else:
print('list is not empty')
if self.table[5] == []:
print('list is empty')
else:
print('list is not empty')
bool([]) == bool(array([]))
,但是bool([0]) != bool(array([0]))
。 - endolith