본문 바로가기

알고리즘(파이썬)

append()와 +의 차이

 

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()는 + 연산자와 다르게 새로운 리스트를 만들지 않고 기존 리스트에 직접 추가한다.

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

 

'알고리즘(파이썬)' 카테고리의 다른 글

스도쿠 검증  (0) 2025.02.15
연속된 부분 수열의 합 (투 포인터 기법 사용)  (0) 2025.02.12
자바와 다른 파이썬  (1) 2025.02.11
회문 문자열  (0) 2025.02.11
소수 찾기 & 숫자 뒤집기  (0) 2025.02.11