13.1 요소 추가하기
튜플은 변경할 수 없는 객체야. 튜플을 만들고 나면 변경할 수 없어. 하지만 종종 객체는 변경할 수 없어도, 변경된 복사본이 필요할 때가 있어.
이게 바로 str
클래스에서 하는 일이야. 이 클래스에는 두 서너 개의 메서드가 있어서
원본 str
객체는 변경하지 않지만, 호출된 메서드의 의미에 맞는 새로운 문자열을 반환해.
Python 개발자들은 tuple
클래스에 튜플을 변경하려고 할 때 새로운 객체를 반환하는 메서드를
추가할 수도 있었을 거야. 하지만 그렇게 하진 않았어.
아마 우리를 헷갈리지 않게 하려던 걸지도, 다른 이유 때문일지도 몰라.
따라서 모든 튜플 변경은 다음과 같은 방식으로 진행돼:
list_ = list(tuple_)
이곳에서 list_ 변경
tuple2 = tuple(list_)
append()
메서드:
예를 들어, 튜플에 요소를 추가하고 싶다면, 이렇게 보일 거야:
my_tuple = (1, 2, 3)
my_list = list(my_tuple)
my_list.append(4) # 리스트에 요소 추가
my_new_tuple = tuple(my_list)
그룹 요소 추가하기 - extend()
메서드:
extend()
메서드는 리스트에 여러 개의
요소를 한 번에 추가할 수 있도록 해줘. 이 메서드는 인자로 반복 가능한 객체
(예: 다른 리스트, 튜플, 집합)를 받아:
my_tuple = (1, 2, 3, 4)
my_list = list(my_tuple)
my_list.extend((5, 6)) # 리스트에 요소들 추가
my_new_tuple = tuple(my_list)
중간에 삽입하기 - insert()
메서드
insert()
메서드는 리스트의 특정 위치에 요소를 추가해줘.
이 메서드는 두 개의 인자를 받는데: 요소를 넣을 인덱스와
그 요소 자체야:
my_tuple = (1, 2, 3, 4)
my_list = list(my_tuple)
my_list.insert(0, 0) # 리스트의 가장 앞에 0 추가
my_new_tuple = tuple(my_list)
13.2 요소 변경하기
튜플의 어떤 요소를 변경해야 한다면, 계속 이 방식을 따라가:
list_ = list(tuple_)
# 이곳에서 list_ 변경
tuple2 = tuple(list_)
첫 번째 요소에 마지막 값을, 마지막에는 첫 번째를 할당해보자. 필요한 코드가 여기 있어:
my_tuple = (1, 2, 3, 4)
my_list = list(my_tuple)
my_list[0], my_list[-1] = my_list[-1], my_list[0] # 값을 서로 바꾸기
my_new_tuple = tuple(my_list)
print(my_new_tuple) # (4, 2, 3, 1)
13.3 요소 삭제하기
튜플에서 요소를 삭제할 때도 같은 방식이야.
튜플에서 특정 값을 삭제하려는 경우 예를 들어보자.
atuple = ("apple", "banana", "cherry")
alist = list(atuple)
alist.remove("apple")
atuple = tuple(alist)
print(atuple) # ('banana', 'cherry')
끝에서 우리가 새로운 tuple 객체를 원래 tuple
의 참조를 저장했던 변수에 할당한 걸 봐.
이렇게 할 수는 있지만, 원래 tuple
은 바뀌지 않아. 그리고 코드에서 위쪽 어딘가에 그에 대한 참조가 있었다면, 여전히 그 원래 tuple
을 가리킬 거야.
이번엔 튜플에서 마지막 요소를 삭제해보자.
이 코드는 이렇게 보일 거야:
atuple = ("apple", "banana", "cherry")
alist = list(atuple)
alist.pop() # 마지막 요소 삭제
atuple = tuple(alist)
print(atuple) # ('apple', 'banana')
생각해보면, 튜플에서 요소를 삭제할 수는 없지만, 정말 원한다면 할 수 있어 😊
GO TO FULL VERSION