Python: как изменить (последний) элемент кортежа?
Вопрос немного вводит в заблуждение, потому что кортежнеизменяем . Чего я хочу, так это:
Имея кортеж a = (1, 2, 3, 4) получаем кортеж b, который точно такой же, как a, за исключением последнего аргумента, который, скажем, дважды последний элемент a.
= > b == (1, 2, 3, 8)
3 ответов:
То, что я делаю здесь, - это конкатенация двух кортежей, первый из которых содержит все, кроме последнего элемента, и новый Кортеж, содержащий мутацию последнего элемента. В результате получается новый Кортеж, содержащий то, что вы хотите. Обратите внимание, что дляb = a[:-1] + (a[-1]*2,)+возврата кортежа оба операнда должны быть кортежем.
Вот один из способов сделать это:
>>> a = (1, 2, 3, 4) >>> b = a[:-1] + (a[-1]*2, ) >>> a (1, 2, 3, 4) >>> b (1, 2, 3, 8)Так что же происходит на второй строке? в[:-1] означает все, кроме последнего элемента. a[-1] - последний элемент, и мы умножаем его на два. (A[-1]*2,) превращает результат в кортеж, и срезанный кортеж сцепляется с ним с помощью оператора+. Результат помещается в b.
Вы, вероятно, можете подогнать это к вашему конкретному случаю.
Comments