파이썬 - list 추가,삭제

김소희·2024년 6월 27일

파이썬

목록 보기
10/17

리스트 추가

append()

  • array.append(x) 형태로 사용한다.
  • 리스트 맨 뒤에 추가
  • append는 덧붙인다는 뜻으로 괄호( ) 안에 값을 입력하면 새로운 요소를 array 맨 끝에 객체로 추가한다. 요소를 추가할 때는 객체로 추가하게 되는데, 입력한 값이 리스트와 같은 반복 가능한 iterable 자료형이더라도 객체로 저장한다. 사용 예시는 아래와 같다.
#1
list = ['apple', 'melon', 'kiwi']
list.append('grape')
print(list)
# print: ['apple', 'melon', 'kiwi', 'grape']

#2
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]이라는 리스트 형태가 그대로 요소로 추가된 것을 볼 수 있다.

extend()

  • 리스트의 끝에 배열을 추가합니다.
  • array.extend(iterable) 형태로 사용한다. 입력한 iterable 자료형의 항목 각각을 array의 끝에 하나씩 추가한다. append와 동일하게 요소를 array의 끝에 추가하지만 append와 다른 점은 괄호( ) 안에는 iterable 자료형만 올 수 있다는 것이다. iterable 자료형이 아닌 경우 TypeError가 발생한다.
#1
list = ['apple', 'melon']
list2 = ['grape', 'kiwi']
list.extend(list2)
print(list)
# print: ['apple', 'melon', 'grape', 'kiwi']

#2
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 함수를 사용할 수 있겠다.

insert(i,x)

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

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

+ 비교 정리

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 자료형이더라도 하나의 요소로 삽입된다.

리스트 삭제

remove(x)

  • 리스트에서 값이 x와 같은 첫 번째 항목을 삭제합니다.
  • 첫 번째 항목 하나만 삭제하는 부분에 유의해야합니다.
  • remove 함수는 값으로 array의 요소를 삭제한다.
  • 사용방법은 array.remove(x) 형태로 사용한다. 괄호( ) 안에 삭제하고자 하는 값을 입력한다. 단, array 안에서 삭제하고자 하는 값이 여러 개가 있다 하더라도 첫 번째 값에 대해서만 삭제한다.
#1
list = ['apple', 'apple', 'grape', 'kiwi']
list.remove('apple')
print(list)
# print: ['apple', 'grape', 'kiwi']

#2
a = ['월', '화', '수', '목', '금']

if '화' in a:
    a.remove('화')
else:
    print('미포함')
    
print(a) # 출력 ['월', '수', '목', '금']

#3
a = ['월', '화', '월', '수', '목', '금']
del a[a.index('월')]

print(a)
# 출력 > ['화', '월', '수', '목', '금']

pop([i])

  • index를 지정하면 index 위치에 데이터를 삭제합니다.
  • index를 지정하지 않으면 리스트의 맨 마지막 데이터를 삭제합니다.

list = ['apple', 'melon', 'grape', 'kiwi']
list.pop()
print(list)
# print: ['apple', 'melon', 'grape']

list.pop(0)
print(list)
# print: ['melon', 'grape']

del

  • del은 함수가 아니라 예약어이다. 그렇기 때문에 함수와 같이 사용할 수 없다.
  • array의 메서드인 함수는 변수 이름 뒤에 점(.)을 붙이고서 사용한다. 그러나 예약어는 예약어 뒤에 한 칸을 띄고서 사용한다. 파이썬의 예약어로는 if, for, or, and 등이 있다.
  • del의 사용방법은 del 뒤에 한 칸을 띄고서 'del array [인덱스]' 형태로 사용한다.
#1
int_list = [1, 2, 3, 4, 5, 6, 7]
str_list = ['가','나','다','라','마']

#2
del int_list[0]  # 한개의 요소를 삭제
print(int_list)
[2, 3, 4, 5, 6, 7]

#3
del str_list[3:]  # 여러개의 요소를 삭제
print(str_list)
['가', '나', '다']

del의 사용방법은 del 뒤에 한 칸을 띄고서 'del array [인덱스]' 형태로 사용한다.

대괄호[ ] 에는 요소의 위치에 해당하는 인덱스를 입력해서 요소의 위치를 지정해서 삭제를 할 수 있다. 인덱스를 사용할 때는 본래의 인덱스 성질 중에 범위 연산자를 그대로 사용할 수 있다. 범위 연산자 슬라이싱(:)을 이용하면 해당 범위에 위치한 여러 개의 요소를 삭제할 수 있다.

리스트 전체삭제

clear

  • 리스트의 모든 항목을 삭제합니다.
  • list.clear 함수는 Python 3.3 버전부터 추가되어 2.x 버전에서는 사용할 수 없습니다.
  • del list[:]를 이용하여 clear와 같이 사용할 수 있습니다.

# 2.x version
list = ['apple', 'melon', 'grape', 'kiwi']
del list[:]
print(list)
# print: []
# 3.x version
list = ['apple', 'melon', 'grape', 'kiwi']
list.clear()
print(list)
# print: []

0개의 댓글