numeros - que significa__ en python
Significado de usar comas y guiones bajos con el operador de asignaciĆ³n Python? (4)
El _ en el shell de Python también se refiere al valor de la última operación. Por lo tanto
>>> 1
1
>>> _
1
Las comas hacen referencia al desempaquetado de tuplas. Lo que ocurre es que el valor de retorno es una tupla, por lo que se desempaqueta en las variables separadas por comas, en el orden de los elementos de la tupla.
Al leer el ensayo Solving Every Sudoku Puzzle de Peter Norvig, me encontré con algunos modismos de Python que nunca había visto antes.
Soy consciente de que una función puede devolver una tupla / lista de valores, en cuyo caso puede asignar múltiples variables a los resultados, como
def f():
return 1,2
a, b = f()
¿Pero cuál es el significado de cada uno de los siguientes?
d2, = values[s] ## values[s] is a string and at this point len(values[s]) is 1
Si len(values[s]) == 1
, ¿cómo es esta declaración diferente de d2 = values[s]
?
Otra pregunta sobre el uso de un guión bajo en la tarea aquí:
_,s = min((len(values[s]), s) for s in squares if len(values[s]) > 1)
¿El guion bajo tiene el efecto de descartar básicamente el primer valor devuelto en la lista?
Puede usar la coma final en una tupla como esta:
>>> (2,)*2
(2, 2)
>>> (2)*2
4
_
es como cualquier otro nombre de variable, pero generalmente significa "No me importa esta variable".
La segunda pregunta: es "desempaquetar valores". Cuando una función devuelve una tupla, puede descomprimir sus elementos.
>>> x=("v1", "v2")
>>> a,b = x
>>> print a,b
v1 v2
d2, = values[s]
es como a,b=f()
, excepto para desempaquetar tuplas de 1 elemento.
>>> T=(1,)
>>> a=T
>>> a
(1,)
>>> b,=T
>>> b
1
>>>
a
es a
tupla, b
es un número entero.