알고리즘(파이썬)

append()와 +의 차이

오마이냥 2025. 2. 12. 20:10

 

append()

append(x)는 리스트의 끝에 하나의 요소 x를 추가한다. 즉 리스트의 길이가 1씩 증가한다.

a=[1, 2, 3]
a.append(4)
a.append(5)

print(a)	# 출력: [1, 2, 3, 4, 5]

 

+ (리스트 병합)

+ 연산자는 두 리스트를 합쳐서 새로운 리스트를 반환한다. 즉 기존 리스트가 변경되는 것이 아니라 새로운 리스트를 만들어서 c에 재할당한다.

a=[1, 2, 3]
a=a+[4]
a=a+[5]

print(a)	# 출력: [1, 2, 3, 4, 5]

 

근데~~~~~~~~~~~~

만약에 아래와 같이 두 리스트를 각각 append()와 + 연산자를 사용한다면 어떤 결과가 나올까

a=[1, 2, 3]
b=[4, 5]

a=a+b
print(a)	# 출력: [1, 2, 3, 4, 5]

a.append(b)
print(a)	# 출력: [1, 2, 3, [4, 5]]

 

+ 연산자로 리스트를 병합했을 경우엔 [1, 2, 3, 4, 5] 처럼 출력될 것이고

append()를 사용했을 경우엔 [1, 2, 3, [4, 5]] 처럼 출력될 것이다.

 

왜냐하면 + 연산자는 리스트의 요소가 개별적으로 추가되지만

append()는 [4, 5]가 하나의 요소로 추가되기 때문이다. 

 

따라서 여러 개의 요소를 추가하고 싶다면 + 를 사용해야 한다.

 

+++++) + 연산자와 같은 기능을 하는 extend()가 있다.

extend()는 + 연산자와 다르게 새로운 리스트를 만들지 않고 기존 리스트에 직접 추가한다.

따아서 + 연산자보다 메모리 사용량이 줄어들고 성능이 더 좋다.