Insertando un artículo en un Tuple

Sí, entiendo que las tuplas son inmutables, pero la situación es tal que necesito insertar un valor extra en cada tupla. Entonces, uno de los artículos es la cantidad, necesito agregar un nuevo artículo junto a él en una moneda diferente, como por ejemplo:

('Product', '500.00', '1200.00') 

¿Posible?

¡Gracias!

Puede convertirlo en una lista, insertar el elemento y luego volver a convertirlo en una tupla.

 a = ('Product', '500.00', '1200.00') a = list(a) a.insert(3, 'foobar') a = tuple(a) print a >> ('Product', '500.00', '1200.00', 'foobar') 

Dado que las tuplas son inmutables, esto resultará en una nueva tupla. Solo vuelve a colocarlo donde obtuviste el viejo.

 sometuple + (someitem,) 

Es absolutamente necesario crear una tupla nueva; luego, puede volver a enlazar el nombre (o cualquier referencia [s]) de la tupla antigua a la nueva. El operador += puede ayudar (si solo había una referencia a la tupla anterior), por ejemplo:

 thetup += ('1200.00',) 

¿Lo anexa y vuelve a unirse de un solo golpe?

 def tuple_insert(tup,pos,ele): tup = tup[:pos]+(ele,)+tup[pos:] return tup tuple_insert(tup,pos,9999) 

tup: tuple
pos: posicionar para insertar
ele: Elemento para insertar

Para el caso en el que no está agregando al final de la tupla

 >>> a=(1,2,3,5,6) >>> a=a[:3]+(4,)+a[3:] >>> a (1, 2, 3, 4, 5, 6) >>> 

una forma es convertirlo a la lista

 >>> b=list(mytuple) >>> b.append("something") >>> a=tuple(b) 

t = (1,2,3,4,5)

t = t + (6,7)

salida:

(1,2,3,4,5,6,7)

Puedes codificar simplemente así:

 T += (new_element,)