[python] 파이썬은 튜플에 항목을 추가합니다

사용자 세션에 튜플로 저장하려고하는 object.ID가 있습니다. 첫 번째를 추가하면 작동하지만 튜플처럼 보이지만 오류가 발생 (u'2',)하여 새 것을 추가하려고하면 .mytuple = mytuple + new.idcan only concatenate tuple (not "unicode") to tuple



답변

두 번째 요소를 1- 튜플로 만들어야합니다. 예 :

a = ('2',)
b = 'z'
new = a + (b,)


답변

Python 3.5 ( PEP 448 ) 부터 튜플, 목록 세트 및 dict 내에서 압축을 풀 수 있습니다.

a = ('2',)
b = 'z'
new = (*a, b)


답변

튜플에서 목록으로 튜플로 :

a = ('2',)
b = 'b'

l = list(a)
l.append(b)

tuple(l)

또는 추가 할 항목 목록이 더 길면

a = ('2',)
items = ['o', 'k', 'd', 'o']

l = list(a)

for x in items:
    l.append(x)

print tuple(l)

너에게 준다

>>>
('2', 'o', 'k', 'd', 'o')

요점은 다음과 같습니다. List는 변경 가능한 시퀀스 유형입니다. 따라서 요소를 추가하거나 제거하여 주어진 목록을 변경할 수 있습니다. 튜플은 불변 시퀀스 유형입니다. 튜플은 변경할 수 없습니다. 따라서 새로운 것을 만들어야합니다 .


답변

튜플은 추가 만 허용 할 수 있습니다 tuple. 가장 좋은 방법은 다음과 같습니다.

mytuple =(u'2',)
mytuple +=(new.id,)

아래 데이터를 사용하여 동일한 시나리오를 시도했지만 모두 제대로 작동하는 것 같습니다.

>>> mytuple = (u'2',)
>>> mytuple += ('example text',)
>>> print mytuple
(u'2','example text')


답변

>>> x = (u'2',)
>>> x += u"random string"

Traceback (most recent call last):
  File "<pyshell#11>", line 1, in <module>
    x += u"random string"
TypeError: can only concatenate tuple (not "unicode") to tuple
>>> x += (u"random string", )  # concatenate a one-tuple instead
>>> x
(u'2', u'random string')


답변

# 1 형태

a = ('x', 'y')
b = a + ('z',)
print(b)

# 2 형태

a = ('x', 'y')
b = a + tuple('b')
print(b)


답변

결론적으로, 튜플에 추가하는 가장 쉬운 방법은 괄호와 쉼표로 추가되는 요소를 묶는 것입니다.

t = ('a', 4, 'string')
t = t + (5.0,)
print(t)

out: ('a', 4, 'string', 5.0)