Si tengo una tupla como (1,2,3,4) y quiero asignar 1 y 3 a las variables a y b me podría decir evidentemente

myTuple = (1,2,3)
a = my_tuple[0]
b = myTuple[2]

O algo así

(a,_,b,_) = myTuple

Hay una manera de que yo pueda descomprimir los valores, pero ignorar uno o más de ellos de ellos?

  • a, _, b = myTuple es bastante habitual lenguaje. Para ser honesto, no veo mucho de malo.
  • ¿Cuál es el problema en tener _ == 2? Nadie va a utilizar _ después en el código.
  • Lo que si quiero ignorar dos partes de la tupla? Voy a actualizar la pregunta
  • que el uso de la gettext de la biblioteca.
InformationsquelleAutor Jim Jeffries | 2012-03-02

2 Comentarios

  1. 14

    Tu solución es buena en mi opinión. Si usted realmente tiene un problema con la asignación de _, a continuación, puede definir una lista de índices y hacer:

    a = (1, 2, 3, 4, 5)
    idxs = [0, 3, 4]
    a1, b1, c1 = (a[i] for i in idxs)
  2. 55

    Yo personalmente habría que escribir:

    a, _, b = myTuple

    Este es un muy común el idioma, por lo que es ampliamente entendido. Me parece que la sintaxis crystal clear.

    • Me gustaría señalar que en el intérprete de python _ se asigna el resultado de la última expresión (así que si usted escribe 'hi' y, a continuación, pulse enter _ is 'hi') hasta que haga algo como este en el cual se asigna un valor a, entonces nunca va a funcionar como lo hacía antes.
    • para la integridad: _ va a trabajar de nuevo como lo hace normalmente cuando tu asignado localmente variable _ deja ámbito, por ejemplo, cuando un adjuntando la función termina. A fuerza de que esto suceda en un punto específico en el programa, puede utilizar del _; esto explícitamente se elimina la variable definida localmente, _, que desenmascara el valor global, _.

Dejar respuesta

Please enter your comment!
Please enter your name here