CodeGym /자바 코스 /Python SELF KO /튜플의 "변경"

튜플의 "변경"

Python SELF KO
레벨 8 , 레슨 4
사용 가능

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')

        

생각해보면, 튜플에서 요소를 삭제할 수는 없지만, 정말 원한다면 할 수 있어 😊

코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION