본문 바로가기
파이썬/기초 문법

[파이썬]리스트 요소값 추가와 삭제하기

by 코키드 Cokid 2022. 9. 30.
반응형

오늘은 리스트의 다양한 함수에 대해 포스팅한다. 이번 포스팅에서는 리스트의 요소들을 추가하고 삭제하는 append, insert, extend, remove, pop 함수들을 다룬다.

이외에 리스트에 어떤 함수가 있는지 보기 위해서는 dir(list)를 터미널창에 치면 된다.

>>> dir(list)['__add__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

 

리스트에 요소 추가하기 - append, extend, insert

append 함수로 리스트에 요소값 추가하기

>>> a = [1, 2, 3]
>>> a.append(4) # 요소값 4 추가
>>> a[1, 2, 3, 4]

>>> a.append('add') # 요소값 'add' 추가
>>> a
[1, 2, 3, 4, 'add']

append 함수는 리스트의 마지막에 요소값을 추가할 수 있다.  변수명 뒤에 .append를 붙이고 괄호 안에 값을 입력한다.

 

extend 함수로 리스트에 요소값 추가하기

>>> a = [1, 2, 3]
>>> b = [3, 4, 5]
>>> a.append(b) # a에 리스트 b 삽입
>>> a
[1, 2, 3, [3, 4, 5]]

위 코드를 보자. a에 append 함수로 b를 추가했더니, [1, 2, 3, 4, 5, 6]이 아닌 [1, 2, 3, [4, 5, 6]] 이중 리스트가 나왔다.

이는 append 함수가 괄호 안의 값을 받으면 하나의 요소값으로 전환하기 때문이다.

[1, 2, 3, 4, 5, 6]을 만들려면 어떻게 해야할까? a + b는 [1, 2, 3, 4, 5, 6 ]을 반환하지만 a의 형태가 바뀌지 않는다.

a의 형태를 바꿔가면서 리스트를 연결하여 합치려면 extend 함수를 사용해야 한다.

 

>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> a.extend(b) # a와 b의 값을 연결하여 a 변경
>>> a
[1, 2, 3, 4, 5, 6]

append 대신 extend를 사용하면 추가하려는 값이 리스트 형태로 있어도 이중으로 리스트를 만들지 않는다.

 

insert 함수로 원하는 위치에 요소값 삽입하기

>>> a = [1, 2, 3]
>>> a.insert(0, 5) # [1, 2, 3]의 0번 위치에 5 삽입
>>> a
[5, 1, 2, 3]

>>> a.insert(3, 10) # [5, 1, 2, 3]의 3 위치에 10 삽입
>>> a
[5, 1, 2, 10, 3]

insert 함수는 원하는 위치에 원하는 요소값을 삽입하는 함수이다.

변수명.insert(삽입 위치, 삽입할 값) 형태로 사용한다. 위 첫 번째 코드는 0번 위치에 숫자 5를 삽입했고 두 번째 코드는 3 위치에 숫자 10을 삽입했다.

 

>>> a
[5, 1, 2, 10, 3] # a 값 확인

>>> a.insert(100, 7) # 리스트 a의 100번째 자리에 숫자 7 삽입
>>> a
[5, 1, 2, 10, 3, 7]

위 코드를 보자. a = [5, 1, 2, 10, 3]으로 인덱스 넘버가 4까지 밖에 없다.

하지만 insert 함수로 100번째 위치에 숫자 7을 삽입하려는데 에러가 발생하지 않는다.

이미 리스트의 범위를 넘어서 insert 함수를 사용하면 끝자리에서 함수가 발동하게 된다.

따라서 [5, 1, 2, 10, 3].insert(100, 7)은 [5, 1, 2, 10, 3, 7]이 되는 것이다.

 

리스트에서 요소값 제거하기 - remove, pop

remove 함수로 리스트 요소값 제거하기

>>> a = [1, 2, 3, 4, 5]
>>> a.remove(4) # 요소값 4 제거
>>> a
[1, 2, 3, 5]

remove 함수로 요소값을 제거할 수 있다. 변수명.remove(값) 형태로 사용할 수 있으며 괄호 안에는 인덱스 번호가 아닌 제거하고자 하는 값을 넣어야 한다.

 

>>> a
[1, 2, 3, 1, 2, 3]
>>> a.remove(2) # remove는 처음 나오는 요소값만 제거
>>> a
[1, 3, 1, 2, 3]

remove 함수로는 하나의 요소값만 제거할 수 있다. 즉 한 번의 함수 적용으로 중복되는 모든 값을 제거할 수는 없다.

 

pop 함수로 리스트 요소값 제거하기

>>> a = [1, 2, 3, 4, 5]
>>> a.pop() # 리스트의 가장 마지막 요소값 반환
5

>>> a # pop 함수 적용 후 반환된 요소값은 리스트에서 제거
[1, 2, 3, 4]

pop 함수는 리스트의 가장 마지막 요소값을 반환하는 동시에  반환되는 값을 리스트 원본에서 삭제한다.

 

pop 함수로 원하는 위치의 요소값 제거하기

>>> a = [1, 2, 3, 4]
>>> a.pop(0) # 0번 째 요소값 반환
1

>>> a # pop 함수로 반환된 요소값 제거
[2, 3, 4]

pop 함수로 원하는 위치의 요소값을 제거할 수 도 있다. pop 함수의 괄호 안에 제거할 값의 인덱스 번호를 적어주면 된다.

첫 번째 코드를 보면 a.pop(0)에서 1이 반환되는 것을 볼 수 있다. [1, 2, 3, 4]의 0번 요소값 1을 리스트에서 제거하고 1을 반환한 모습이다. 다음 코드에서 a를 출력해보면 1이 제거된 것을 볼 수 있다.

 

 

 

 

2022.09.28 - [파이썬/기초 문법] - [Python]리스트(list) 자료형 만들기 & 리스트의 연산

2022.09.29 - [파이썬/기초 문법] - [Python]리스트(list) 인덱싱 & 슬라이싱

2022.10.01 - [파이썬/기초 문법] - [Python]리스트 함수[2/2]: 정렬, 카운트, 위치 - sort, reverse, count, index

반응형

댓글