수치자료형, 문자열 자료형에 이어 오늘은 리스트(List) 자료형에 대해 알아보겠습니다. 지난 포스팅이 궁금하시다면 아래의 링크를 참고해 주세요.
파이썬 기초 – 6장. 문자열 자료형(str) 고급
파이썬 기초 – 5장. 문자열 자료형(str) 기초
파이썬 기초 – 4장. 수치 자료형
리스트 자료형은 나중에 배울 튜플(tuple), 사전(dictionary) 자료형과 함께, 데이터를 담을 수 있는 컨테이너 자료형입니다. 자료를 수정할 수 있는 (mutable) 성격을 가지고 있기 때문에, 자료 추가 삭제 등 다양한 메소드를 제공하여 사용 빈도가 매우 많은 자료형 입니다.
자세한 특징과 사용법은 아래에서 알아보도록 하겠습니다.
1. 파이썬 리스트 자료형 (List)의 특징
리스트 자료형은 순서가 있고, 수정 가능 한 성격(mutable) 때문에 아래와 같은 특징을 가지고 있습니다. 리스트를 생성할 때는 두가지 방법이 있습니다. 두가지 모두 가능하기 때문에 편한 방법을 사용하시면 됩니다! (개인적으로는 직관적이고 코드의 양이 적은 대괄호를 사용하는 방법을 선호합니다.)
# 대괄호 []를 이용하여 리스트 생성
empty_list = []
# list() 함수를 호출하여 리스트 생성
empty_list = list()
1) 순서가 있는 데이터 집합
리스트는 순서가 있는 데이터 집합을 나타내는데 사용됩니다. 순서가 있다는 의미는 데이터를 인덱스를 통해 접근할 수 있는 것을 의미하며, 항목의 추가, 수정, 삭제 등 다양한 조작이 가능합니다. 또한 순서가 중요하기 때문에
2) 여러 종류의 데이터 저장
리스트는 다양한 종류의 데이터를 저장할 수 있습니다. 숫자, 문자열, 튜플, 딕셔너리, 다른 리스트 등을 거의 대부분의 데이터 형태를 하나의 리스트에 담을 수 있습니다.
3) 가변적인 크기
리스트의 크기는 동적으로 변경될 수 있습니다. 항목을 추가하거나 삭제함에 따라 리스트의 길이가 조절될 수 있습니다.
4) 리스트 메서드의 활용
파이썬은 리스트를 다루는 다양한 메서드를 제공합니다. append()
, remove()
, count()
등의 메서드를 사용하여 리스트를 조작하고 데이터를 처리할 수 있습니다. 메서드는 공부해야할 부분이 많은 만큼 뒤에서 예시와 함께 알아보도록 하겠습니다.
5) 슬라이싱과 반복, 중첩리스트
리스트는 슬라이싱을 통해 부분 리스트를 추출하거나, *
연산자를 사용하여 리스트를 반복할 수 있습니다. 또한 리스트안에 리스트를 중첩하여 사용 가능하며, 역시 인덱스를 사용하여 접그닝 간으합니다. 앞에서 배웠던 문자열의 슬라이싱/반복 연산과 유사하기 때문에 차근차근 학습하셧다면, 사용이 어렵진 않습니다. 아래의 예시를 참조하시기 바랍니다.
fruits = ["사과", "바나나", "딸기", "오렌지"]
# 리스트 슬라이싱
sliced_fruits = fruits[1:3]
print(sliced_fruits)
# sliced_fruits = ["바나나", "딸기"]
# 리스트 반복
duplicated_fruits = fruits * 2
print(duplicated_fruits)
# duplicated_fruits = ['사과', '바나나', '딸기', '오렌지', '사과', '바나나', '딸기', '오렌지']
# 중첩 리스트
nested_list = [1, "apple", ["a", "b", "c"]]
print(nested_list[2][1])
# nested_list[2][1]의 출력 => 'b'
2. 리스트 매소드
대표 mutable 자료형이라는 이름에 걸맞게 데이터를 추가, 제거 할 수 있는 메소드를 포함하여 다양한 기능이 있습니다. 물론 단점이 없는 것은 아닙니다. 자료가 수정이 가능하기 때문에, 수정하면 안되는 데이터는 가급적 튜플을 사용하는 편이 좋고, 반복문 등을 사용할 때 속도가 느리다는 단점이 있습니다.
물론 적은 데이터를 활용 할때는 문제가 없으며, 추후 대량의 데이터를 처리할 때는 느린 속도 때문에 numpy라는 다른 Library를 주로 사용하게 됩니다. 나중에 배울 내용이니 참고만 하시기 바랍니다.
메서드 | 설명 |
append() | 리스트에 항목 추가 |
extend() | 리스트에 다른 리스트의 항목 추가 |
insert() | 지정한 위치에 항목 삽입 |
remove() | 지정한 값을 가진 첫 번째 항목 삭제 |
pop() | 지정한 인덱스에 있는 항목 삭제 및 반환 |
index() | 지정한 값을 가진 첫 번째 항목의 인덱스 반환 |
count() | 지정한 값과 일치하는 항목의 개수 반환 |
sort() | 리스트를 오름차순으로 정렬 |
reverse() | 리스트를 역순으로 뒤집기 |
copy() | 리스트의 복사본 생성 |
clear() | 리스트의 모든 항목 삭제 |
설명과 함께 예시코드를 작성하여 공유합니다. 코딩은 설명만으론 이해가 어렵고, 항상 예시코드를 읽고 작성하는 습관을 가지시기 바랍니다!
# 리스트 생성
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
# append() 메소드 사용
numbers.append(7)
print(numbers) # [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 7]
# extend() 메소드 사용
other_numbers = [8, 9, 7]
numbers.extend(other_numbers)
print(numbers) # [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 7, 8, 9, 7]
# insert() 메소드 사용
numbers.insert(0, 0)
print(numbers) # [0, 3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 7, 8, 9, 7]
# remove() 메소드 사용
numbers.remove(4)
print(numbers) # [0, 3, 1, 1, 5, 9, 2, 6, 5, 3, 5, 7, 8, 9, 7]
# pop() 메소드 사용
popped_item = numbers.pop(2)
print(popped_item) # 1
print(numbers) # [0, 3, 1, 5, 9, 2, 6, 5, 3, 5, 7, 8, 9, 7]
# index() 메소드 사용
index_of_5 = numbers.index(5)
print(index_of_5) # 3
# count() 메소드 사용
count_of_5 = numbers.count(5)
print(count_of_5) # 3
# sort() 메소드 사용
numbers.sort()
print(numbers) # [0, 1, 2, 3, 3, 5, 5, 5, 6, 7, 7, 8, 9, 9]
# reverse() 메소드 사용
numbers.reverse()
print(numbers) # [9, 9, 8, 7, 7, 6, 5, 5, 5, 3, 3, 2, 1, 0]
# copy() 메소드 사용
numbers_copy = numbers.copy()
print(numbers_copy) # [9, 9, 8, 7, 7, 6, 5, 5, 5, 3, 3, 2, 1, 0]
# clear() 메소드 사용
numbers_copy.clear()
print(numbers_copy) # []
오늘은 파이썬의 리스트 자료형에 대해 알아보았습니다. 사용빈도가 높으니 잘 익히시길 바랍니다. 다음 시간에는 따른 컨테이너 자료형인 튜플에 대해 포스팅 하도록 하겠습니다.
감사합니다. “끝”