是的,我理解元组是不可变的,但是我需要在每个元组中插入一个额外的值。所以其中一项是金额,我需要用不同的货币在它旁边添加一个新项目,如下所示:
('Product', '500.00', '1200.00')
可能的?
谢谢!
答案 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,)