tuple español python python-2.7 tuples

tuple python español



Convertir lista a tupla en Python (5)

Ampliando el comentario de eumiro, normalmente la tuple(l) convertirá una lista l en una tupla:

In [1]: l = [4,5,6] In [2]: tuple Out[2]: <type ''tuple''> In [3]: tuple(l) Out[3]: (4, 5, 6)

Sin embargo, si ha redefinido la tuple para que sea una tupla en lugar del type tuple :

In [4]: tuple = tuple(l) In [5]: tuple Out[5]: (4, 5, 6)

luego obtienes un TypeError ya que la tupla en sí no es invocable:

In [6]: tuple(l) TypeError: ''tuple'' object is not callable

Puede recuperar la definición original de la tuple al salir y reiniciar su intérprete, o (gracias a @glglgl):

In [6]: del tuple In [7]: tuple Out[7]: <type ''tuple''>

Estoy tratando de convertir una lista en una tupla.

Cuando lo busco en Google, encuentro muchas respuestas similares a:

l = [4,5,6] tuple(l)

Pero si hago eso me sale este mensaje de error:

TypeError: el objeto ''tuple'' no es invocable

¿Como puedo solucionar este problema?


Debería funcionar bien. No utilice tuple , list u otros nombres especiales como nombre de variable. Probablemente es lo que está causando su problema.

>>> l = [4,5,6] >>> tuple(l) (4, 5, 6)


Encuentro muchas respuestas actualizadas y adecuadamente, pero agregaré algo nuevo a la pila de respuestas.

En Python hay infinitas formas de hacer esto, aquí hay algunos ejemplos.
Forma normal

>>> l= [1,2,"","pytho"] >>> l [1, 2, '''', ''pytho''] >>> tup = tuple(l) >>> type(tup) >>> tup = tuple(l) >>> type(tup) <type ''tuple''> >>> type(tup) <type ''tuple''> >>> tup (1, 2, '''', ''pytho'')

forma inteligente

>>>tuple(item for item in l) (1, 2, '''', ''pytho'')

Recuerde que la tupla es inmutable, utilizada para almacenar algo valioso. Por ejemplo, contraseña, clave o hashes se almacenan en tuplas o diccionarios. Si se necesita cuchillo por qué usar la espada para cortar manzanas. Úsalo sabiamente, también hará que tu programa sea eficiente.


Para agregar otra alternativa a la tuple(l) , a partir de Python> = 3.5 puede hacer:

t = *l, # or t = (*l,)

Corto, un poco más rápido, pero probablemente sufre de legibilidad.

Esto esencialmente desempaqueta la lista l dentro de un literal de tupla que se crea debido a la presencia de la coma única,.

Ps: El error que está recibiendo se debe al enmascaramiento de la tuple nombre, es decir, que asignó la tupla de nombre en algún lugar, por ejemplo, tuple = (1, 2, 3) .

Usando del tuple deberías ser bueno para ir.


Podrías haber hecho algo como esto:

>>> tuple = 45, 34 # You used `tuple` as a variable here >>> tuple (45, 34) >>> l = [4, 5, 6] >>> tuple(l) # Will try to invoke the variable `tuple` rather than tuple type. Traceback (most recent call last): File "<pyshell#10>", line 1, in <module> tuple(l) TypeError: ''tuple'' object is not callable >>> >>> del tuple # You can delete the object tuple created earlier to make it work >>> tuple(l) (4, 5, 6)

Aquí está el problema ... Ya que ha usado una variable de tuple para sostener una tuple (45, 34) antes ... Entonces, la tuple es un object de tipo tuple ahora ...

No es más un type y, por lo tanto, no es más Callable .

Never use ningún tipo incorporado como nombre de variable ... Tiene otro nombre para usar. Utilice cualquier nombre arbitrario para su variable en su lugar ...