¿Cómo comprobar si la matriz no está vacía? Hice esto:¿Cómo comprobar si la matriz no está vacía?
if not self.table[5] is None:
¿Es esta la manera correcta?
¿Cómo comprobar si la matriz no está vacía? Hice esto:¿Cómo comprobar si la matriz no está vacía?
if not self.table[5] is None:
¿Es esta la manera correcta?
if self.table:
print 'It is not empty'
está muy bien también
No hay mención de numpy en la pregunta. Si por array te refieres a list, entonces si tratas una lista como booleana arrojará True si tiene elementos y False si está vacía.
l = []
if l:
print "list has items"
if not l:
print "list is empty"
Este método es peligroso porque, por ejemplo, bool (numpy.array ([0])) se evalúa como False. La prueba de Remi usando a.size es correcta. –
Sí, esto es incorrecto y no debería haber tantas votaciones ascendentes – endolith
Esta respuesta es correcta cuando se trabaja con listas. a.size no funcionará si a es una lista. El OP debería haber sido más específico sobre el tipo de datos. – chthonicdaemon
con a
como numpy array, utilice: (. En Python, objetos como [1,2,3]
se llaman listas, no matrices)
if a.size:
print('array is not empty')
El uso de numpy solo para comprobar si una lista está vacía parece ser de mano dura. – Pengo
@Pengo: No sugerí convertir una lista a una matriz numpy. Esta respuesta supone que 'a' ya es una matriz numpy. Hablar de 'arreglos' en Python se refiere rápidamente a matrices numpy, porque nativamente Python no tiene objetos Array, solo listas. – Remi
Una forma sencilla es utilizar booleana expresiones:
if not self.table[5]:
print('list is empty')
else:
print('list is not empty')
O puede utilizar otra expresión booleana:
if self.table[5]==[]:
print('list is empty')
else:
print('list is not empty')
len(self.table)
cheques por la longitud de la matriz, lo que puede utilizar sentencias if para averiguar si la longitud de la lista es mayor que 0 (no vacío):
Python 2:
if len(self.table) > 0:
#Do code here
Python 3:
if(len(self.table) > 0):
#Do code here
También es posible utilizar
if self.table:
#Execute if self.table is not empty
else:
#Execute if self.table is empty
para ver si la lista no está vacía.
que no puedo comentar todavía, pero cabe mencionar que si se utiliza matriz numpy con más de un elemento de esta fallará:
if l:
print "list has items"
elif not l:
print "list is empty"
el error será:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
print(len(a_list))
Como muchos idiomas tienen la función len()
, en Python esto funcionaría para su pregunta. Si la salida no es 0
, la lista no está vacía.
Si habla de la actual array
de Python (disponible a través de import array from array
), entonces se aplica el principio de menos asombro y puede verificar si está vacío de la misma manera que comprobaría si una lista está vacía.
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")
No quiero demasiados duplicados flotando.Niega la respuesta en: [Python: ¿Cuál es la mejor manera de verificar si una lista está vacía?] (Http://stackoverflow.com/questions/53513/python-what-is-the-best-way-to-check -if-a-list-is-empty) – birryree
@birryree: No es un duplicado. 'bool ([]) == bool (array ([]))', pero 'bool ([0])! = bool (array ([0]))'. – endolith