Articles of syntax

¿Cómo hacer la asignación de variables dentro de un bucle while (expresión) en Python?

Tengo la asignación de variable para devolver el valor asignado y compararlo con una cadena vacía, directamente en el bucle while. Así es como lo estoy haciendo en PHP: while((name = raw_input(“Name: “)) != ”): names.append(name) Lo que estoy tratando de hacer es idéntico a esto en funcionalidad: names = [] while(True): name = raw_input(“Name: […]

¿Por qué puedes omitir los paréntesis de los generadores en Python al pasarlo a una función?

Estaba experimentando en Python con una syntax diferente para pasar un generador como argumento a una función, y me di cuenta de que, aunque he estado haciendo esto, >>> sum((j for j in xrange(5))) 10 esto funciona también >>> sum(j for j in xrange(5)) 10 Esto se prueba en Python 2.6.6 en Linux. ¿Qué está […]

¿Qué hay debajo del capó de x = ‘y’ ‘z’ en Python?

Si ejecuta x = ‘y’ ‘z’ en Python, obtendrá x establecido en ‘yz’ , lo que significa que se está produciendo algún tipo de concatenación de cadenas cuando Python ve múltiples cadenas una al lado de la otra. Pero, ¿qué tipo de concatenación es esta? ¿Realmente está ejecutando ‘y’ + ‘z’ o está ejecutando ”.join(‘y’,’z’) […]

Cómo especificar la probabilidad previa de Naive Bayes de scikit-learn

Estoy utilizando la biblioteca de aprendizaje automático de scikit-learn (Python) para un proyecto de aprendizaje automático. Uno de los algoritmos que estoy usando es la implementación Gaussian Naive Bayes. Uno de los atributos de la función GaussianNB () es el siguiente: class_prior_ : array, shape (n_classes,) Quiero modificar la clase antes manualmente ya que los […]

¿Cómo aplicar decoradores a las lambdas?

¿Hay alguna syntax para usar un decorador en una función lambda en Python? Ejemplo: def simpledecorator(f): def new_f(): print “Using a decorator: ” f() return new_f @simpledecorator def hello(): print “Hello world!” Resultados en esta salida: >>> hello() Using a simple decorator: Hello world! Sin embargo, cuando bash lo mismo con un lambda: @anotherdecorator f […]

Diferencia entre clases de decorador y funciones de decorador.

Supongo que así se llaman, pero daré ejemplos por si acaso. Clase de decorador: class decorator(object): def __init__(self, func): self.func = func def __call__(self, *args, **kwargs): print ‘something’ self.func(*args, **kwargs) Función decoradora: def decorator(func): def wrapper(*args, **kwargs): print ‘something’ return func(*args, **kwargs) return wrapper ¿Usar uno u otro es solo cuestión de gustos? ¿Hay alguna […]

Nombre esta construcción de lenguaje Python / Ruby (usando valores de matriz para satisfacer los parámetros de la función)

¿Cómo se llama esta construcción del lenguaje? En Python puedo decir: def a(b,c): return b+c a(*[4,5]) y consigue 9. Igualmente en Ruby: def a(b,c) b+c end a(*[4,5]) ¿Cómo se llama esto, cuando se pasa una única matriz a una función que, de lo contrario, requiere múltiples argumentos? ¿Cuál es el nombre del operador * ? […]

Uso de Python para “subir de”

¿Cuál es la diferencia entre raise y raise from en Python? try: raise ValueError except Exception as e: raise IndexError cuyos rendimientos Traceback (most recent call last): File “tmp.py”, line 2, in raise ValueError ValueError During handling of the above exception, another exception occurred: Traceback (most recent call last): File “tmp.py”, line 4, in raise […]

No Lambda multilínea en Python: ¿Por qué no?

He oído decir que las lambdas multilínea no se pueden agregar a Python porque chocan sintácticamente con las otras construcciones de syntax de Python. Hoy pensé en esto en el autobús y me di cuenta de que no podía pensar en una sola construcción Python con la que las lambda multilínea chocaran. Dado que conozco […]

listas de comprensión anidadas

Intenté usar el valor de una comprensión de lista externa en una interna: [ x for x in range(y) for y in range(3) ] Pero, desafortunadamente, esto genera un NameError porque el nombre y es desconocido (aunque la comprensión de la lista externa lo especifica). ¿Es esta una limitación de Python (2.7.3 y 3.2.3 probado) […]