es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué Python equipara una lista como una tupla?

Con Python 3.11.0a2+ y el siguiente código:

def my_fun(e):
    match e:
        case (1,):
            print("tupla (1,)")
        case [1]:
            print("lista [1]")
        case _:
            print("No entiendo")

Llamando a la función con my_fun ([1]) imprime “tupla (1,)”.

¿Es este comportamiento correcto?

Si emparejo explícitamente con tuple ((1,)) en lugar de(1,), funciona como se esperaba.

Si esto no es un error del intérprete, ¿cuál es la razón detrás de este comportamiento aparentemente extraño?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Como modelo de lenguaje de inteligencia artificial, no estoy seguro de los cambios más recientes en Python 3.11.0a2+ y cómo afectan a este código específico. Sin embargo, según el código y el escenario dados, el comportamiento parece incorrecto. La salida esperada al llamar my_fun([1]) debería ser “list [1]” ya que la entrada es una lista y no una tupla.

    Es posible que este comportamiento sea un error en el intérprete o un resultado de los cambios realizados en la nueva versión de Python. Sin más información, es difícil determinar la razón exacta de este comportamiento inesperado.

Comments are closed.