답변:
튜플은 불변입니다. 생성 후 변수가 포함 된 변수는 변경할 수 없습니다. 그러나, 그것들을 연결하거나 슬라이스하여 새로운 튜플을 형성 할 수 있습니다 :
a = (1, 2, 3)
b = a + (4, 5, 6) # (1, 2, 3, 4, 5, 6)
c = b[1:] # (2, 3, 4, 5, 6)
그리고 물론, 기존의 가치로부터 그것들을 구축하십시오 :
name = "Joe"
age = 40
location = "New York"
joe = (name, age, location)
a = ()
및 을 추가 b= a + (5)
하면 b = 5가되고 b= a + (5,)
,는 b = (5,)
; 튜플.
다음과 같은 빈 튜플로 시작할 수 있습니다 t = ()
. 로 추가 할 수 +
있지만 다른 튜플을 추가해야합니다. 단일 요소를 추가하려면 단일 요소로 만드십시오 t = t + (element,)
. 후행 쉼표가 있거나없는 여러 요소의 튜플을 추가 할 수 있습니다.
>>> t = ()
>>> t = t + (1,)
>>> t
(1,)
>>> t = t + (2,)
>>> t
(1, 2)
>>> t = t + (3, 4, 5)
>>> t
(1, 2, 3, 4, 5)
>>> t = t + (6, 7, 8,)
>>> t
(1, 2, 3, 4, 5, 6, 7, 8)
t = ()
다음 과 같이 할 수도 있습니다. thent += (1,)
아직 언급되지 않은 또 다른 전술은 목록에 추가하고 목록을 튜플로 변환하는 것입니다.
mylist = []
for x in range(5):
mylist.append(x)
mytuple = tuple(mylist)
print mytuple
보고
(0, 1, 2, 3, 4)
때로는 튜플을 함수 인수로 전달해야 할 때 이것을 사용합니다.이 함수는 종종 numpy 함수에 필요합니다.
list(someTuple)
작동 한다는 것을 아는 것이 유용합니다 . 두 개체 유형은 분명히 교환 할 수 있습니다
Python 3에서는 *
원래 튜플에서 새 요소와 함께 새 튜플 요소를 만드는 데 사용할 수 있습니다 .
>>> tuple1 = ("foo", "bar")
>>> tuple2 = (*tuple1, "baz")
>>> tuple2
('foo', 'bar', 'baz')
tuple1 + ("baz",)
.
"정보가 DB에 추가되면 튜플을 삭제해야합니까? 더 이상 튜플이 필요하지 않습니다."
아니.
일반적으로 아무것도 삭제할 이유가 없습니다. 삭제에 대한 특별한 경우가 있지만 매우 드 rare니다.
좁은 범위 (즉, 클래스의 함수 정의 또는 메서드 함수)를 정의하기 만하면 개체가 범위의 끝에서 가비지 수집됩니다.
아무것도 삭제하는 것에 대해 걱정하지 마십시오.
[노트. 나는 객체를 삭제하는 것 외에도 항상 "재설정"방법을 사용하여 지우는 사람과 함께 일했습니다. 그가 그들을 저장하고 재사용하려고했던 것처럼. 또한 어리석은 자존심. 더 이상 사용하지 않는 개체는 무시하십시오. 충분히 작은 코드 블록으로 함수를 정의하면 더 이상 생각할 것이 없습니다.]
다른 답변에서 언급했듯이 기존 튜플을 변경할 수는 없지만 항상 새 튜플을 만들 수 있습니다 (기존 튜플 및 / 또는 다른 소스에서 일부 또는 모든 항목을 가져올 수 있음).
예를 들어, 관심있는 모든 항목이 스칼라 변수에 있고 해당 변수의 이름을 알고있는 경우 :
def maketuple(variables, names):
return tuple(variables[n] for n in names)
예를 들어이 예에서와 같이 사용됩니다.
def example():
x = 23
y = 45
z = 67
return maketuple(vars(), 'x y z'.split())
물론이 경우는보다 단순하게 표현 될 수 있지만 (x, y, z)
(또는 앞서 언급 한 이름까지도 (23, 45, 67)
) maketuple
접근 방식은 좀 더 복잡한 경우에 유용 할 수 있습니다 (예 : 사용할 이름도 동적으로 결정되어 목록에 추가되는 경우). 계산).