En realidad el programa almacena los valores booleanos en un bit como un 1 o 0; esta característica yo creo es conocida por todos, pero Novlucker muestra que también se permite usar los booleanos True o False para operar matemáticamente como si fueran unos y ceros:
Dentro del código:
la sentencia (x>0) tiene la función de devolver un booleano True o False que es interpretado como un 1 o un 0 y usado para multiplicar a "x"; y es el resultado de esa operación, para cada valor de x, la que va dando la serie de resultados: [0, 1, 2, 3, 0, 5, 0, 8, 0].
Código (python) [Seleccionar]
print(True + True)
2
print(5 * True)
5
print(3 * False)
0
print(False - True)
-1
Dentro del código:
Código (python) [Seleccionar]
a = [0, 1, 2, 3, -4, 5, -6, 8, -9]
a = [(x>0)*x for x in a]
print a
la sentencia (x>0) tiene la función de devolver un booleano True o False que es interpretado como un 1 o un 0 y usado para multiplicar a "x"; y es el resultado de esa operación, para cada valor de x, la que va dando la serie de resultados: [0, 1, 2, 3, 0, 5, 0, 8, 0].