자료구조 (Data Structure) 란?
개요
Python의 자료구조(Data Structure)는 데이터를 효율적으로 저장하고 관리하기 위한 방법을 제공하는 데이터 타입의 집합입니다.
이러한 자료구조들은 데이터를 조직화하고, 데이터 접근 및 수정을 용이하게 하며, 프로그래밍 과정에서 문제를 해결하는 데 필수적인 역할을 합니다.
Python에 내장된 주요 자료구조에는 리스트(List), 튜플(Tuple), 사전(Dictionary), 집합(Set) 등이 있으며, 각각은 다음과 같은 특징을 가지고 있습니다.
Python에서 List(리스트) 란?
리스트는 파이썬에서 가장 많이 사용되는 자료구조 중 하나입니다.
순서가 있는 컬렉션으로, 다양한 타입의 요소를 저장할 수 있습니다.
인덱스를 통해 요소에 접근할 수 있으며, 요소의 추가, 삭제, 변경이 가능한 가변적(Mutable) 자료구조입니다.
List 사용 방법
생성
리스트를 생성하기 위해서는 다음과 같이 대괄호[]
를 사용하고, 각 요소는 콤마(,
)로 구분합니다.
예제
# create list my_list = [1, 2, 3, 4, 5] print(my_list)
결과
[1, 2, 3, 4, 5]
접근
특정 요소에 접근하려면 인덱스를 사용하여 접근합니다.
인덱스는 0부터 시작합니다.
예제
# access item in list print(my_list[0]) # print 1st element print(my_list[2]) # print 3rd element
결과
1 3
추가
append()
를 활용하여 List의 끝에 추가할 수 있습니다.
예제
# add item to list my_list.append(6) # add 6 to the end of the list print(my_list)
결과
[1, 2, 3, 4, 5, 6]
수정
index를 활용하여 해당 요소를 변경할 수 있습니다.
예제
# change item in list my_list[1] = 20 print(my_list) # change 2nd element to 20
결과
[1, 20, 3, 4, 5, 6]
삭제
del
키워드를 이용하여 해당 요소를 삭제할 수 있습니다.
예제
# delete item from list del my_list[0] # delete 1st element print(my_list)
결과
[20, 3, 4, 5, 6]
슬라이싱
리스트 슬라이싱을 사용하면 리스트의 일부분을 쉽게 가져올 수 있습니다.
예제
# list slicing print(my_list[1:4]) # slice from 2nd to 4th element
결과
[3, 4, 5]
중첩
리스트의 중첩은 리스트 안에 다른 리스트를 포함시키는 것을 말합니다.
이러한 구조는 다차원 배열을 모방하거나 복잡한 데이터 구조를 구성할 때 유용하게 사용됩니다.
예를 들어, 2차원 행렬을 표현하거나, 데이터의 계층적 구조를 만들 때 중첩 리스트를 활용할 수 있습니다.
예제
# create list of 3x3 matrix (nested list) matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] print('access item in nested list') # access item in nested list print(matrix[0][1]) # print 1st row, 2nd element (2) print(matrix[2][0]) # print 3rd row, 1st element (7) print('loop') # loop through nested list for row in matrix: print(row[0])
결과
access item in nested list 2 7 loop 1 4 7
그 외 유용한 List 내장 함수들
리스트는 다양한 내장 함수를 가지고 있습니다. 여기 몇 가지 중요한 함수들을 소개합니다.
append(x)
:- 리스트의 끝에 새로운 요소 x를 추가합니다.
extend(iterable)
:- 리스트에 iterable의 모든 요소를 끝에 추가합니다.
insert(i, x)
:- 지정된 위치 i에 요소 x를 삽입합니다.
remove(x)
:- 리스트에서 첫 번째로 나타나는 x를 삭제합니다. x가 리스트에 없으면 오류가 발생합니다.
pop(i)
:- 지정된 위치 i에 있는 요소를 리스트에서 제거하고, 그 값을 반환합니다.
- i를 지정하지 않으면 리스트의 마지막 요소를 제거하고 반환합니다.
clear()
:- 리스트의 모든 요소를 삭제합니다.
index(x)
:- 리스트에서 첫 번째로 나타나는 x의 인덱스를 반환합니다.
count(x)
:- 리스트에서 x가 나타나는 횟수를 반환합니다.
sort()
:- 리스트의 요소를 정렬합니다.
reverse()
:- 리스트의 요소 순서를 뒤집습니다.