Python에서 list에 원소를 추가할때 사용되는 append와 extend의 차이를 다루고 있습니다.
2022. 5. 28 최초작성
append와 expend 모두 list에 원소를 추가하는 방법이지만 원소를 추가한 결과에 차이가 있습니다.
append
추가하려고 하는 대상을 그대로 리스트에 추가해줍니다.
리스트 객체를 하나 생성합니다.
>>> L = []
append는 하나의 아규먼트만 허용하기 때문에 다음처럼 추가하면 에러가 납니다.
>>> L.append(1, 2, 3, 4, 5)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: append() takes exactly one argument (5 given)
append 사용시 하나씩 원소를 추가해야 합니다.
>>> L.append(1)
원소 하나가 추가된 것을 볼 수 있습니다.
>>> L
[1]
리스트를 사용하면 여러 개의 원소를 추가할 수 있지만
>>> L.append([2,3])
리스트 내에 리스트로 추가됩니다.
>>> L
[1, [2, 3]]
하나의 리스트에 다수의 원소를 리스트로 묶어서 넣고나서 결과적으로 1차원 리스트로 유지되게 하려면 다음에 소개하는 extend를 사용하면 됩니다.
extend
추가하려고 하는 대상이 리스트이면 그 안에 들어있는 원소를 꺼내서 리스트에 추가해줍니다.
주의할점은 리스트안에 리스트가 있는 경우에는 외부에 있는 리스트에서만 한번 꺼낸다는 점입니다.
리스트 객체를 하나 추가합니다.
>>> L = []
extend에서는 원소 하나를 직접 추가할 수 없습니다.
>>> L.extend(1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
원소 하나라도 리스트에 넣어줘야 합니다.
>>> L.extend([1])
리스트에서 원소를 꺼내서 리스트에 넣어줍니다. 결과적으로 1차원 리스트가 됩니다.
>>> L
[1]
여러개의 원소를 리스트에 넣어서 추가할 수 있습니다.
>>> L.extend([2, 3])
결과를 보면 extend를 1차원 리스트에 다수의 원소를 한번에 추가하는 방법으로 사용할 수 있다는 것을 알 수 있습니다.
>>> L
[1, 2, 3]
리스트 안에 리스트가 있는 경우를 추가해봅니다.
>>> L.extend([[4, 5]])
가장 바깥쪽에 있는 리스트에서 원소를 꺼내서 리스트에 추가했다는 것을 알 수 있습니다.
>>> L
[1, 2, 3, [4, 5]]
'Python > Python 예제 코드' 카테고리의 다른 글
파이썬 딕셔너리에 함수 추가해놓고 호출하기 (0) | 2022.07.09 |
---|---|
Python - 서브 디렉토리 목록 및 서브 디렉토리에 포함된 파일 개수 출력하기 (0) | 2022.05.28 |
파이썬 리스트에서 특정값의 개수를 세는 방법 (0) | 2022.03.03 |
Python 예제 - glob.glob, os.walk 특정 경로에 있는 특정 확장자 파일의 목록을 리스트로 받기 (0) | 2022.01.02 |
파이썬 예제 - 특정 경로의 파일 목록인 리스트를 딕셔너리에 저장하기 (2) | 2021.12.27 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!