research open neural network machine learning google for datasets python python-2.6

python - open - kaggle datasets



Si todo en la lista== algo (4)

Usando Python 2.6, ¿hay alguna manera de verificar si todos los elementos de una secuencia son iguales a un valor dado, en una declaración?

[pseudocode] my_sequence = (2,5,7,82,35) if all the values in (type(i) for i in my_sequence) == int: do()

En lugar de, digamos:

my_sequence = (2,5,7,82,35) all_int = True for i in my_sequence: if type(i) is not int: all_int = False break if all_int: do()


Yo sugeriría:

if all(isinstance(i, int) for i in my_list):

all y any aparecieron por primera vez en Python 2.5. Si está utilizando una versión anterior de Python, los enlaces proporcionan implementaciones de muestra.

También sugiero usar isinstance ya que también detectará subclases de int .


Quieres decir

all( type(i) is int for i in my_list )

?

Editar: Cambiado a is . Un poco más rápido.


Utilizar:

all( type(i) is int for i in lst )

Ejemplo:

In [1]: lst = range(10) In [2]: all( type(i) is int for i in lst ) Out[2]: True In [3]: lst.append(''steve'') In [4]: all( type(i) is int for i in lst ) Out[4]: False

[Editar]. Hecho más limpio según los comentarios.


En aras de la exhaustividad, pensé que agregaría el hecho de que el ''todo'' de NumPy es diferente del ''todo'' incorporado. Si, por ejemplo, ejecuta Python a través de Python (x, y), NumPy se carga automáticamente (y no se puede descargar, por lo que sé), por lo que cuando se intenta ejecutar el código anterior, se obtienen resultados bastante inesperados:

>>> if (all(v == 0 for v in [0,1])): ... print ''this should not happen'' ... this should not happen

Más información sobre esto está en question numpy, todos difieren de todos integrados . Como solución, puede rodear el generador con corchetes para producir una lista:

>>> all( [v == 0 for v in [0,1]] ) False

O llame a la función integrada explícitamente:

>>> __builtins__.all(v == 0 for v in [0,1,''2'']) False

Encontré una manera de evitar que Spyder importase NumPy por defecto: lista de importación del módulo predeterminado de Spyder