У мене кортеж (x,y)
де x
є рядком і y
- ціле число. Тепер я хочу виконати операцію на y
, люблю y += 1
, не бажаючи створювати новий кортеж. Як я можу це зробити?
Відповіді:
5 за відповідь № 1Кортежі незмінні, тому ви не можете безпосередньо змінювати змінну
>>> t = ("foobar", 7)
>>> t[1] += 1
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
t[1] += 1
TypeError: "tuple" object does not support item assignment
Тож вам доведеться призначити назад новий кортеж
>>> t = (t[0], t[1]+1)
>>> t
("foobar", 8)
3 для відповіді № 2
Ви не можете "т - кортежі незмінні. Будь-яка спроба зміни існуючого кортежа призведе до TypeError: "tuple" object does not support item assignment
.
Що можна зробити, це повторне прив’язання назви об'єкта до нового кортежу на основі попереднього.
t = ("a", 1)
t = (t[0], t[1]+1)
assert t == ("a", 2)
2 для відповіді № 3
Ви не можете, оскільки операція буде вимкнути кортеж, що неможливо. Створіть новий кортеж.
newtuple = (t[0], t[1] + 1)