Estoy tratando de convertir una lista en una tupla.
La mayoría de las soluciones en Google ofrecen el siguiente código:
l = [4,5,6]
tuple(l)
Sin embargo, el código produce un mensaje de error cuando lo ejecuto:
TypeError: el objeto 'tupla' no es invocable ¿Cómo puedo solucionar este problema?
python
python-2.7
tuples
LynnH
fuente
fuente

tupleotro lugar antes?Respuestas:
Debería funcionar bien. No utilice
tuple,listu otros nombres especiales como un nombre de variable. Probablemente sea lo que está causando tu problema.fuente
Ampliando el comentario de eumiro, normalmente
tuple(l)convertirá una listalen una tupla:Sin embargo, si has redefinido
tuplepara ser una tupla en lugar de latypetuple:entonces obtienes un TypeError ya que la tupla en sí no es invocable:
Puede recuperar la definición original
tupleal salir y reiniciar su intérprete o (gracias a @glglgl):fuente
Es posible que hayas hecho algo como esto:
Aquí está el problema ... Ya que ha utilizado una
tuplevariable para contener untuple (45, 34)anterior ... Entonces, ahoratupleesobjectde tipotupleahora ...Ya no es
typeay, por lo tanto, ya no existeCallable.Neveruse cualquier tipo incorporado como su nombre de variable ... Usted tiene cualquier otro nombre para usar. Use cualquier nombre arbitrario para su variable en su lugar ...fuente
Para agregar otra alternativa
tuple(l), a partir de Python> =3.5puede hacer:breve, un poco más rápido pero probablemente adolece de legibilidad.
Esto esencialmente desempaqueta la lista
ldentro de un literal de tupla que se crea debido a la presencia de una coma individual,.Ps: El error que está recibiendo se debe al enmascaramiento del nombre,
tuplees decir, que asignó la tupla de nombre en algún lugar, por ejemplotuple = (1, 2, 3).Usarlo
del tupledebería ser bueno para ir.fuente
Encuentro muchas respuestas actualizadas y respondidas correctamente, pero agregaré algo nuevo a la pila de respuestas.
En Python hay infinitas formas de hacer esto, aquí hay algunos casos de
manera normal
forma inteligente
Recuerde que la tupla es inmutable, se usa para almacenar algo valioso. Por ejemplo, la contraseña, clave o hash se almacenan en tuplas o diccionarios. Si se necesita un cuchillo, ¿por qué usar la espada para cortar manzanas? Úselo sabiamente, también hará que su programa sea eficiente.
fuente
tuple(l)(primera forma) es más corta quetuple(item for item in l)(segunda forma).