Operaciones sobre matrices

Chema Cortes pych3m4 en gmail.com
Lun Abr 3 11:30:54 CEST 2006


On 4/3/06, camontuyu <camontuyu en yahoo.es> wrote:
> El lun, 03-04-2006 a las 10:35 +0200, Rafael Villar Burke escribió:

> ¿por qué comparar if x is not 0: es mas optimizado que una comparación
> tradicional?

En la comparación tradicional, los elementos a comparar se convierten
a un tipo de datos común ("casting") para poder compararlos; en
cambio, la comparación con el 'is' se realiza sólo comparando
identidades (mismo objeto en memoria), no los valores.

Hay que tener cuidado, ya que sólo hay un pequeño conjunto de números
enteros que se comparan por "identidad" (del -1 al 99) como
optimización. Podría no ser así en el futuro, por lo que no se debe
utilizar sin estar seguro de lo que se hace:

>>> 0 is 0.0
False
>>> 0==0.0
True

No son objetos "idénticos" aunque "valgan" lo mismo.




Más información sobre la lista de distribución Python-es