Подтвердить что ты не робот

Вставка элемента в кортеж

Да, я понимаю, что кортежи неизменяемы, но ситуация такова, что мне нужно вставить дополнительное значение в каждый кортеж. Таким образом, одним из элементов является сумма, мне нужно добавить новый элемент рядом с ним в другой валюте, например:

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

Возможные?

Спасибо!

4b9b3361

Ответ 1

Вы можете отправить его в список, вставить элемент, а затем вернуть его в кортеж.

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

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

Ответ 2

Поскольку кортежи неизменяемы, это приведет к появлению нового кортежа. Просто поместите его обратно, где вы получили старый.

sometuple + (someitem,)

Ответ 3

Вам абсолютно необходимо создать новый кортеж, после чего вы можете переписать имя (или любую ссылку [s]) из старого кортежа в новый. Оператор += может помочь (если была только одна ссылка на старый кортеж), например:

thetup += ('1200.00',)

делает добавление и повторное связывание одним махом.

Ответ 4

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

tuple_insert(tup,pos,9999)

tup: tuple
pos: Позиция для вставки
ele: Элемент для вставки

Ответ 5

В случае, когда вы не добавляете в конец кортежа

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

Ответ 6

один способ - преобразовать его в список

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

Ответ 7

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

t = t + (6,7)

вывод:

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

Ответ 8

Вы можете просто прописать код:

T += (new_element,)