在元组中插入项目

3zz*_*zzy 42 python tuples insert

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

('Product', '500.00', '1200.00')
Run Code Online (Sandbox Code Playgroud)

可能?

谢谢!

swa*_*son 53

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

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

>> ('Product', '500.00', '1200.00', 'foobar')
Run Code Online (Sandbox Code Playgroud)

  • 或者许多方法中的任何一种都不会修改原始元组,而是替换它. (11认同)
  • 这真的不是一个好的解决方案.您可以使用`+ =('foobar',)`来获得相同的效果. (4认同)

Ign*_*ams 46

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

sometuple + (someitem,)
Run Code Online (Sandbox Code Playgroud)


Ale*_*lli 20

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

thetup += ('1200.00',)
Run Code Online (Sandbox Code Playgroud)

一举追加和重新绑定.


Vid*_*gar 15

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

tuple_insert(tup,pos,9999)
Run Code Online (Sandbox Code Playgroud)

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


Joh*_*ooy 7

对于不添加到元组结尾的情况

>>> a=(1,2,3,5,6)
>>> a=a[:3]+(4,)+a[3:]
>>> a
(1, 2, 3, 4, 5, 6)
>>> 
Run Code Online (Sandbox Code Playgroud)


Viv*_*vek 7

你也可以像这样简单地编码:

T += (new_element,)
Run Code Online (Sandbox Code Playgroud)


小智 6

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

t= t + (6,7)
Run Code Online (Sandbox Code Playgroud)

输出 :

(1,2,3,4,5,6,7)
Run Code Online (Sandbox Code Playgroud)