오늘은 리스트의 다양한 함수에 대해 포스팅한다. 이번 포스팅에서는 리스트의 요소들을 추가하고 삭제하는 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
'파이썬 > 기초 문법' 카테고리의 다른 글
[파이썬]튜플 이해하기 - 특성, 인덱싱, 슬라이싱, 연산 (0) | 2022.10.02 |
---|---|
[파이썬]리스트의 정렬, 카운트, 위치찾기 (1) | 2022.10.01 |
[파이썬]리스트 자료형의 인덱싱과 슬라이싱 (1) | 2022.09.29 |
[파이썬] 리스트 자료형의 생성과 연산 (0) | 2022.09.28 |
[파이썬]문자열 함수들 - 대문자, 소문자, 알파벳, 숫자 (0) | 2022.09.27 |
댓글