J'ai des object.ID-s que j'essaie de stocker dans la session utilisateur en tant que tuple. Quand j'ajoute le premier, cela fonctionne mais le tuple ressemble à (u'2',)
mais quand j'essaye d'en ajouter un nouveau en utilisant mytuple = mytuple + new.id
got error can only concatenate tuple (not "unicode") to tuple
.
python
python-2.7
tuples
Goran
la source
la source
(a+b)*c
new = a + b
placenew = a + (b,)
. AFAICT, fonctionne de la même manière en python3 et python2.7.a += ('z',)
, comme mentionné dans la réponse ci-dessousDepuis Python 3.5 ( PEP 448 ), vous pouvez effectuer une décompression dans un tuple, un ensemble de listes et un dict:
la source
Du tuple à la liste au tuple:
Ou avec une liste plus longue d'éléments à ajouter
vous donne
Le point ici est: La liste est un type de séquence mutable . Vous pouvez donc modifier une liste donnée en ajoutant ou en supprimant des éléments. Tuple est un type de séquence immuable . Vous ne pouvez pas changer un tuple. Vous devez donc en créer un nouveau .
la source
list
au début, ajoutez des éléments, puis à la toute fin, convertissez-le entuple
alors c'est la meilleure solution +1Tuple ne peut autoriser que des ajouts
tuple
. La meilleure façon de le faire est:J'ai essayé le même scénario avec les données ci-dessous, tout semble bien fonctionner.
la source
la source
Forme # 1
Forme # 2
la source
TypeError: 'int' object is not iterable
En bout de ligne, le moyen le plus simple d'ajouter à un tuple est de placer l'élément ajouté avec des parenthèses et une virgule.
la source