У меня есть несколько object.ID, которые я пытаюсь сохранить в сеансе пользователя как кортеж. Когда я добавляю первый, он работает, но кортеж выглядит так, (u'2',)
но когда я пытаюсь добавить новый, используя mytuple = mytuple + new.id
полученную ошибку can only concatenate tuple (not "unicode") to tuple
.
python
python-2.7
tuples
Горан
источник
источник
(a+b)*c
new = a + b
вместоnew = a + (b,)
. AFAICT, работает одинаково в python3 и python2.7.a += ('z',)
Начиная с Python 3.5 ( PEP 448 ) вы можете распаковывать в кортеже, наборе списков и dict:
источник
От кортежа к списку кортежу:
Или с более длинным списком предметов для добавления
дает тебе
Суть здесь в следующем: List - это изменяемый тип последовательности. Таким образом, вы можете изменить данный список, добавляя или удаляя элементы. Tuple - это тип неизменяемой последовательности. Вы не можете изменить кортеж. Таким образом, вы должны создать новый .
источник
list
в начало, добавьте элементы, а затем в самом конце выполните преобразование в,tuple
тогда это лучшее решение +1Кортеж может разрешить только добавление
tuple
к нему. Лучший способ сделать это:Я попробовал тот же сценарий с приведенными ниже данными, все это, кажется, работает нормально.
источник
источник
Форма № 1
№ 2 форма
источник
TypeError: 'int' object is not iterable
В итоге, самый простой способ добавить к кортежу - заключить добавляемый элемент в круглые скобки и запятую.
источник