티스토리 뷰

반응형

 

append( ), extend( ), insert( ) 함수 비교

 

세 개의 함수 모두 요소를 추가할 수 있는 함수이다. 그런데 추가하는 방식에는 차이가 있다. 그 차이를 아래에서 비교 정리해본다.

 

- 순서 -
1. append( )
2. extend( )
3. insert( )

4. 세 개의 함수 비교 정리

 


1. append( )

array.append(x) 형태로 사용한다. 

append는 덧붙인다는 뜻으로 괄호( ) 안에 값을 입력하면 새로운 요소를 array 맨 끝에 객체로 추가한다. 요소를 추가할 때는 객체로 추가하게 되는데, 입력한 값이 리스트와 같은 반복 가능한 iterable 자료형이더라도 객체로 저장한다. 사용 예시는 아래와 같다.

>>> nums = [1, 2, 3]
>>> nums.append(4)
[1, 2, 3, 4]

>>> nums.append([5, 6])
[1, 2, 3, 4, [5, 6]] # 리스트가 하나의 객체로 추가되었음

append 함수를 사용해서 array의 맨 끝에 요소로 추가되었다. 두 번째 예시의 경우 [5, 6]이라는 리스트를 추가하였는데 각 값이 5, 6의 요소로 추가되는 것이 아니라 [5, 6]이라는 리스트 형태가 그대로 요소로 추가된 것을 볼 수 있다. 

 

2. extend( )

array.extend(iterable) 형태로 사용한다. 입력한 iterable 자료형의 항목 각각을 array의 끝에 하나씩 추가한다. append와 동일하게 요소를 array의 끝에 추가하지만 append와 다른 점은 괄호( ) 안에는 iterable 자료형만 올 수 있다는 것이다. iterable 자료형이 아닌 경우 TypeError가 발생한다. 사용 예시는 아래와 같다.

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

>>> a = [10]
>>> nums.extend(a) 
[1, 2, 3, 4, 5, 10]

괄호 안에 iterable 자료형만 입력할 수 있기 때문에 요소 하나를 추가하려면 리스트와 같은 iterable 자료형으로 변환하여 입력해야 한다. 그런데 요소 하나만 추가한다면 굳이 extend 함수를 사용하기보다는 append 함수를 사용하는 것이 편리하겠다. 반면 append 함수는 iterable 자료형의 요소를 각각 추가하는 것이 불가능하니 그럴 때는 extend 함수를 사용할 수 있겠다.

 

 

3. insert( )

array.insert(i, x) 형태로 사용한다. array의 원하는 위치 i 앞에 추가할 값 x를 삽입할 수 있다. i는 위치를 나타내는 인덱스를 숫자를 입력한다. 음수를 입력하면 배열의 끝을 기준으로 처리된다. 추가할 값 x는 객체로 추가되며 iterable 자료형이더라도 객체로 저장된다. 사용 예시는 아래와 같다.

>>> nums = [1, 2, 3]
>>> nums.insert(0, [10, 20])  # 0번째(맨앞에) 추가
[[10, 20], 1, 2, 3]

>>> nums.insert(-1, 100)  # 끝에서 1번째 전에 추가
>>> print(nums)
[[10, 20], 1, 2, 100, 3]  # 리스트 맨 끝에 저장되지 않음

array의 끝에 추가하고 싶은 경우 array의 요소 개수가 적으면 하나하나 셀 수도 있지만 요소가 많은 경우 len( ) 함수를 이용할 수 있다. 위에서 생성한 nums 변수에 대해서 맨 마지막에 요소를 추가하는 경우는 아래 코드에서 작성해보았다. 

>>> nums = [1, 2, 3]
>>> nums.insert(len(nums), 100)
[1, 2, 3, 100]

계속해서 세 개의 함수를 간략하게 비교 정리해본다.

 

4. 세 개의 함수 비교 정리

1) append 함수

arry.append(x) 형태로 사용한다. x를 arry의 맨 끝에 객체로 추가다. x가 iterable 자료형이더라도 전체를 하나의 객체로 해서 요소로 추가한다.

2) extend 함수

array.extend(iterable) 형태로 사용한다. iterable의 각 요소를 하나씩 array의 끝에 요소로 추가한다. append 함수와 다른 점은 괄호 안에 iterable 자료형만 올 수 있다.

3) insert 함수

array.insert(i, x) 형태로 사용한다. 원하는 위치 i에 x를 삽입할 수 있다. 값 x는 객체로 추가된다. append 함수와 마찬가지로 iterable 자료형이더라도 하나의 요소로 삽입된다.

 

반응형
댓글
반응형