알고리즘(파이썬)
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()는 + 연산자와 다르게 새로운 리스트를 만들지 않고 기존 리스트에 직접 추가한다.
따아서 + 연산자보다 메모리 사용량이 줄어들고 성능이 더 좋다.