[Python – 기초 강좌] 8. 자료구조 (Data Structure): List 편

자료구조 (Data Structure) 란?

개요

Python의 자료구조(Data Structure)는 데이터를 효율적으로 저장하고 관리하기 위한 방법을 제공하는 데이터 타입의 집합입니다.

이러한 자료구조들은 데이터를 조직화하고, 데이터 접근 및 수정을 용이하게 하며, 프로그래밍 과정에서 문제를 해결하는 데 필수적인 역할을 합니다.

Python에 내장된 주요 자료구조에는 리스트(List), 튜플(Tuple), 사전(Dictionary), 집합(Set) 등이 있으며, 각각은 다음과 같은 특징을 가지고 있습니다.

python-data-structure

Python에서 List(리스트) 란?

리스트는 파이썬에서 가장 많이 사용되는 자료구조 중 하나입니다.

순서가 있는 컬렉션으로, 다양한 타입의 요소를 저장할 수 있습니다.

인덱스를 통해 요소에 접근할 수 있으며, 요소의 추가, 삭제, 변경이 가능가변적(Mutable) 자료구조입니다.

List-in-Python

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():
    • 리스트의 요소 순서를 뒤집습니다.

참고 문헌

Leave a Comment