在元组中插入项目

时间:2010-02-22 07:03:53

标签: python insert tuples

是的,我理解元组是不可变的,但是我需要在每个元组中插入一个额外的值。所以其中一项是金额,我需要用不同的货币在它旁边添加一个新项目,如下所示:

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

可能的?

谢谢!

8 个答案:

答案 0 :(得分:49)

您可以将其强制转换为列表,插入项目,然后将其强制转换为元组。

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

>> ('Product', '500.00', '1200.00', 'foobar')

答案 1 :(得分:45)

由于元组是不可变的,这将导致一个新的元组。只需将它放回原来的地方即可。

sometuple + (someitem,)

答案 2 :(得分:20)

你绝对需要创建一个新的元组 - 然后你可以将旧元组的名称(或任何引用[s])重新绑定到新元组。 +=运算符可以提供帮助(如果只有一个对旧元组的引用),例如:

thetup += ('1200.00',)

一下子追加和重新绑定。

答案 3 :(得分:14)

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

tuple_insert(tup,pos,9999)

tup:tuple
pos:要插入的位置
ele:要插入的元素

答案 4 :(得分:7)

对于你没有添加到元组结尾的情况

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

答案 5 :(得分:3)

一种方法是将其转换为列表

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

答案 6 :(得分:3)

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

t = t +(6,7)

输出:

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

答案 7 :(得分:2)

您也可以像这样编码:

T += (new_element,)