Mam kilka obiektów.ID, które próbuję przechowywać w sesji użytkownika jako krotkę. Kiedy dodam pierwszy, działa, ale wygląda na to, że krotka, (u'2',)
ale kiedy próbuję dodać nowy, używając polecenia mytuple = mytuple + new.id
get error can only concatenate tuple (not "unicode") to tuple
.
python
python-2.7
tuples
Goran
źródło
źródło
(a+b)*c
new = a + b
zamiastnew = a + (b,)
. AFAICT, działa tak samo w python3 i python2.7.a += ('z',)
, jak wspomniano wOd Pythona 3.5 ( PEP 448 ) możesz rozpakowywać w krotce, zestawie list i dyktowaniu:
źródło
Od krotki do listy do krotki:
Lub z dłuższą listą elementów do dołączenia
daje Ci
Chodzi o to, że: Lista jest zmiennym typem sekwencji. Możesz więc zmienić daną listę, dodając lub usuwając elementy. Tuple to niezmienny typ sekwencji. Nie możesz zmienić krotki. Musisz więc stworzyć nowy .
źródło
list
tuple
Krotka może tylko zezwalać na dodawanie
tuple
do niej. Najlepszym sposobem na to jest:Wypróbowałem ten sam scenariusz z poniższymi danymi, wszystko wydaje się działać dobrze.
źródło
źródło
Formularz nr 1
Formularz nr 2
źródło
TypeError: 'int' object is not iterable
Podsumowując, najłatwiejszym sposobem dołączenia do krotki jest ujęcie dodawanego elementu nawiasami i przecinkiem.
źródło