더북(TheBook)

bad_delete_hand가 시작할 때는 tt4가 같은 리스트를 참조하고 있다. 끝날 때는 t가 새로운 리스트를 참조하고, t3는 여전히 원본, 변경되지 않은 리스트를 참조한다.

이를 해결하는 방법은 새로운 리스트를 생성해서 반환하는 함수를 작성하는 것이다. 예를 들어 tail은 리스트의 첫 번째 원소를 제외한 나머지를 반환한다.

def tail(t):

return t[1:]

tail 함수는 원본 리스트를 변경하지 않는다. 어떻게 사용하는지 살펴보자.

>>> letters = ['a', 'b', 'c']

>>> rest = tail(letters)

>>> rest

['b', 'c']

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.