반응형

파이썬 리스트, 딕셔너리 등에 요소(인자)를 추가 삽입하는 함수에 대한 포스팅입니다.

 

리스트에 인자를 추가할 경우가 참 많죠? 인자 추가는 세 가지 함수로 진행하는데요. 세 개의 함수 모두 요소를 추가/삽입하는 함수지만, 방식과 특성 차이가 있어요. 자주 안 쓰면 혼동되는 함수라 차이를 비교 정리해봤습니다.

 

 

1. append 함수 : 맨 뒤에 인자 추가

리스트. append(x) 형태로 사용합니다. 추가하는 x를 arry의 맨 끝에 객체로 추가해요. x가 iterable (리스트 등) 자료형이면 전체를 하나의 객체로 해서 요소로 추가해요.

 

 

# 맨 뒤에 인자를 추가함
>>> nums = [1, 2, 3, 4]
>>> nums.append(5)
[1, 2, 3, 4, 5]

# 리스트도 하나의 인자처럼 추가
>>> nums.append([6])
[1, 2, 3, 4, 5, [6]]

 

 

 

2. extend 함수 : 리스트 + 리스트 

리스트. extend(iterable) 형태로 사용해요. iterable의 각 요소를 하나씩 array의 끝에 요소로 합니다. append 함수와 다른 점은 괄호 안에 iterable 자료형만 올 수 있다. 즉, 리스트 등 iterable 객체를 풀어서 더하는 함수로 생각하시면 됩니다.

 

# 리스트로 주어진 [5, 6, 7]의 요소가 각각 추가 되었음
>>> nums = [1, 2, 3, 4]
>>> nums.extend([5, 6, 7])
[1, 2, 3, 4, 5, 6, 7]

 

리스트 + 리스트를 통해 하나의 리스트로 만들고 싶을 때 사용하시면 편하겠죠?

 

 

 

3. insert 함수 : 특정 위치에 인자 추가

 

리스트. insert(i, x) 형태로 사용해서 원하는 위치 i에 x를 삽입할 수 있어요. 값 x는 객체로 추가된다.  iterable 자료형이더라도 하나의 요소로 삽입됩니다. append 함수와 동일하죠?

 

# 1번째(두번쩨) 추가
>>> nums = [1, 2, 3, 4]
>>> nums.insert(1, [10, 20]) 
[ 1, [10, 20], 2, 3, 4]

 

리스트 맨 끝에 추가하고 싶은 경우 array의 요소 많으면 힘들겠죠? 요소가 많은 경우 len( ) 함수를 이용할 수 있어요. ( 주의 : -1을 적으시면 맨 뒤에서 두 번째로 갑니다 ㅠ)

 

# len 함수를 이용한 맨 뒤에 넣기
>>> nums = [1, 2, 3]
>>> nums.insert(len(nums), 100)
[1, 2, 3, 100]


# -1을 적으면 뒤에서 두번째로 감 (주의)
>>> nums = [1, 2, 3]
>>> nums.insert(-1, 100)
[1, 2, 100, 3]

 

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