web-dev-qa-db-ja.com

タプルにアイテムを挿入する

はい、タプルは不変であることを理解していますが、各タプルに追加の値を挿入する必要がある状況です。そのため、アイテムの1つは金額です。次のように、新しい通貨を別の通貨で追加する必要があります。

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

可能?

ありがとう!

42
3zzy

リストにキャストし、アイテムを挿入してから、タプルにキャストできます。

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

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

タプルは不変なので、これにより新しいタプルが作成されます。古いものを入手した場所に戻します。

sometuple + (someitem,)

新しいタプルを作成する必要があります。古いタプルから新しいタプルに名前(または任意の参照)を再バインドできます。 +=演算子が役立ちます(古いタプルへの参照が1つしかない場合)。例:

thetup += ('1200.00',)

追加と再バインドを一挙に行います。

20
Alex Martelli
def Tuple_insert(tup,pos,ele):
    tup = tup[:pos]+(ele,)+tup[pos:]
    return tup

Tuple_insert(tup,pos,9999)

tup:タプル
pos:挿入する位置
ele:挿入する要素

15
Vidya Sagar

タプルの最後に追加しない場合

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

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

t = t +(6,7)

出力:

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

3
hardik patel

1つの方法は、リストに変換することです

>>> b=list(mytuple)
>>> b.append("something")
>>> a=Tuple(b)
3
ghostdog74

このように単純にコーディングすることもできます。

T += (new_element,)
2
Vivek