더북(TheBook)

append는 리스트를 수정하고 None을 반환한다.

>>> t3 = t1 + [4]

>>> t1

[1, 2, 3]

>>> t3

[1, 2, 3, 4]

+ 연산자는 새로운 리스트를 생성하므로 원본 리스트는 변경되지 않는다.

리스트를 수정하는 함수를 작성해야 할 때 이런 차이는 매우 중요하다. 예를 들어 다음 함수는 리스트의 처음(head)을 삭제하지 않는다.

def bad_delete_head(t):

t = t[1:] # 틀렸음!

슬라이스 연산자는 새로운 리스트를 생성하고, 할당문은 t가 새로 만든 리스트를 참조하게 해버리는데, 이렇게 하면 호출자에는 영향을 주지 않는다.

>>> t4 = [1, 2, 3]

>>> bad_delete_head(t4)

>>> t4

[1, 2, 3]

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