반응형

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]]




 



반응형

해보고 확인한 것을 문서화하여 기록합니다.


부족함이 있지만 도움이 되었으면 합니다.
잘못된 부분이나 개선점을 알려주시면 감사하겠습니다.



포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
문제가 생기면 포스트와 바뀐 환경이 있나 먼저 확인해보세요.

질문을 남겨주면 가능한 빨리 답변드립니다.


제가 쓴 책도 한번 검토해보세요 ^^

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기

댓글을 달아 주세요

">
  1. thumbnail
    Favicon of https://economiceco.tistory.com BlogIcon 내인생PLUS

    퍼갑니다 감사합니다

  2. thumbnail
    Favicon of https://economiceco.tistory.com BlogIcon 내인생PLUS

    Python의 append와 extend의 차이 - https://economiceco.tistory.com/m/13893