TITEDIOS 편한 코딩

Python 기초강의: #14 데이터 구조 - 리스트(List) 본문

파이썬

Python 기초강의: #14 데이터 구조 - 리스트(List)

TitediosKW 2024. 7. 5. 19:00
반응형

 

이번 포스팅부터는 파이썬에 대해서 하나하나 파고드는 시간을 가져보겠습니다. 앞선 포스팅을 통해 파이썬에 대한 감각과 기초를 익히셨다면 지금부터는 좀 더 자세한 파이썬의 기능을 활용할 예정이며 이해를 깊이 하는 것을 목표로 하겠습니다.


파이썬의 리스트(List)는 가장 유용하고 자주 사용되는 데이터 구조 중 하나입니다. 리스트는 다양한 자료형의 데이터를 순차적으로 저장할 수 있으며, 그 유연성과 기능 덕분에 많은 프로그래머들이 즐겨 사용합니다. 이번 포스팅에서는 파이썬 리스트의 개념, 특징, 주요 메소드 및 활용 예제를 통해 리스트를 자세히 살펴보겠습니다.

1. 리스트란 무엇인가?

리스트는 파이썬에서 순서가 있는 변경 가능한 시퀀스 데이터 구조입니다. 리스트는 대괄호 []로 정의(또는 선언)하고, 쉼표 ','로 구분된 요소(element)들을 포함할 수 있습니다. 리스트의 각 요소는 서로 다른 데이터 타입일 수 있습니다. 다음 예제를 통해 리스트의 기초 사용법을 확인할 수 있습니다.

# 리스트 예제
fruits = ["apple", "banana", "cherry"]
numbers = [1, 2, 3, 4, 5]
mixed = [1, "apple", 3.14, True]

2. 리스트의 특징

리스트는 또한 다음과 같은 특징을 가지고 있습니다. 데이터 구조를 공부할 때 이런 특징을 잘 살피는 것이 중요합니다. 왜냐하면 우리가 어떤 정보를 저장하려고 할 때 이러한 특징을 기반으로 데이터 구조를 선택합니다. 예를 들어 우리가 저장해야 하는 정보는 순서가 중요하고 중복이 있다고 한다면 리스트가 적절하지만 키를 기반으로 접근한다면 리스트보다 다른 데이터 구조가 더 적합할 수 있기 때문입니다.


순서가 있음: 리스트의 요소는 순서가 있으며, 인덱스를 통해 접근할 수 있습니다.
변경 가능함 (Mutable): 리스트의 요소는 변경, 추가, 삭제가 가능합니다.
다양한 데이터 타입 허용: 리스트는 문자열, 숫자, 불리언 등 다양한 데이터 타입을 포함할 수 있습니다.
중복 요소 허용: 리스트는 중복된 요소를 가질 수 있습니다.

3. 리스트 생성 및 기본 사용법

리스트 생성

리스트는 대괄호 []를 사용하거나 list() 객체를 이용하여 생성합니다. 요소를 초기화하지 않은 빈 리스트도 만들 수 있습니다.

empty_list = [] # or list()
fruits = ["apple", "banana", "cherry"]

리스트 요소 접근

리스트의 요소는 인덱스를 사용하여 접근할 수 있습니다. 인덱스는 0부터 시작합니다.

fruits = ["apple", "banana", "cherry"]
print(fruits[0])  # 'apple' 출력
print(fruits[2])  # 'cherry' 출력

리스트 요소 수정

리스트의 요소는 인덱스를 사용하여 수정할 수 있습니다.

fruits = ["apple", "banana", "cherry"]
fruits[1] = "blueberry" # list의 두 번째 요소를 blueberry로 변경
print(fruits)  # ['apple', 'blueberry', 'cherry'] 출력

4. 주요 리스트 메소드

아래는 리스트에서 사용하는 주요 메소드입니다. 지금은 한번 훑어보시고 나중에 리스트를 사용할 때 참고하시면서 사용하시면 됩니다. 특히 이중에 가장 많이 사용되는 메소드는 append와 extend입니다.

append()

append() 메소드는 리스트의 끝에 요소를 추가합니다.

fruits = ["apple", "banana"]
fruits.append("cherry")
print(fruits)  # ['apple', 'banana', 'cherry'] 출력

extend()

extend() 메소드는 리스트에 다른 리스트의 요소를 추가합니다.

fruits = ["apple", "banana"]
more_fruits = ["cherry", "date"]
fruits.extend(more_fruits) # 요소가 아닌 리스트를 입력하여 해당 리스트의 요소들을 추가하는 개념
print(fruits)  # ['apple', 'banana', 'cherry', 'date'] 출력

insert()

insert() 메소드는 리스트의 특정 위치에 요소를 추가합니다.

fruits = ["apple", "banana"]
fruits.insert(1, "cherry")
print(fruits)  # ['apple', 'cherry', 'banana'] 출력

remove()

remove() 메소드는 리스트에서 첫 번째로 등장하는 특정 요소를 제거합니다.

fruits = ["apple", "banana", "cherry"]
fruits.remove("banana")
print(fruits)  # ['apple', 'cherry'] 출력

pop()

pop() 메소드는 리스트의 마지막 요소를 제거하고 반환합니다. 특정 인덱스를 지정하여 해당 위치의 요소를 제거할 수도 있습니다.

fruits = ["apple", "banana", "cherry"]
fruit = fruits.pop()
print(fruit)  # 'cherry' 출력
print(fruits)  # ['apple', 'banana'] 출력

sort()

sort() 메소드는 리스트의 요소를 오름차순으로 정렬합니다. reverse=True 인자를 사용하여 내림차순으로 정렬할 수도 있습니다.

numbers = [3, 1, 4, 1, 5, 9]
numbers.sort()
print(numbers)  # [1, 1, 3, 4, 5, 9] 출력

numbers.sort(reverse=True)
print(numbers)  # [9, 5, 4, 3, 1, 1] 출력

reverse()

reverse() 메소드는 리스트의 요소 순서를 반대로 뒤집습니다.

numbers = [1, 2, 3, 4, 5]
numbers.reverse()
print(numbers)  # [5, 4, 3, 2, 1] 출력

5. 리스트 슬라이싱

슬라이싱은 리스트에서 특정 부분을 추출할 때 사용하는 기능입니다. 추출하는 방법은 '리스트[시작:끝:간격]'과 같이 작성하여 시작점에서 끝점 사이의 요소들을 추출합니다. 특별히 간격을 주어 간격에 따라 추출하는 방법도 있습니다. 아래 예제를 통해 자세하게 확인해 보시면 좋겠습니다. 파이썬의 강력한 기능 중 하나로 활용 시 코드 양도 굉장히 줄어들고 기능 개발도 편하게 하실 수 있습니다.

numbers = [1, 2, 3, 4, 5]

# 전체 리스트 추출
print(numbers[:])  # Output: [1, 2, 3, 4, 5]

# 처음 세 개의 요소 추출
print(numbers[:3])  # Output: [1, 2, 3]

# 마지막 두 개의 요소 추출
print(numbers[-2:])  # Output: [4, 5]

# 홀수 번째 인덱스의 요소만 추출
print(numbers[::2])  # Output: [1, 3, 5]

# 뒤에서부터 홀수 번째 인덱스의 요소만 추출
print(numbers[::-2])  # Output: [5, 3, 1]

6. 리스트의 활용 예제

마지막으로 지금까지 리스트에 대해 공부한 것을 복기하고 확인하기 위해 리스트를 활용한 몇 가지 예제를 살펴보도록 하겠습니다.

예제 1: 리스트의 요소 합계 구하기

리스트의 모든 요소의 합계를 구하는 예제입니다. 파이썬 내장함수인 sum()을 이용하여 쉽게 리스트의 합을 구할 수 있습니다.

numbers = [1, 2, 3, 4, 5]
total = sum(numbers)
print(total)  # 15 출력

예제 2: 리스트의 요소 중 최댓값과 최소값 구하기

리스트의 최댓값과 최솟값을 구하는 예제입니다. 프로그래밍을 하다보면 최대값과 최소값을 구하는 일이 생각보다 많은데요 이 경우 사용하기 쉬운 예제입니다.

numbers = [1, 2, 3, 4, 5]
max_value = max(numbers)
min_value = min(numbers)
print(max_value)  # 5 출력
print(min_value)  # 1 출력

예제 3: 리스트에서 중복 요소 제거하기

리스트에서 중복된 요소를 제거하는 예제입니다. 중복 제거 예제도 유용한 예제 중 하나입니다. 특별히 우리가 사용자로부터 어떤 입력을 받거나 데이터를 획득했을 때 중복을 제거하고 싶은 경우가 많습니다. 이 예제를 활용하면 파이썬 기능을 이용해 중복을 손쉽게 제거 가능합니다.

numbers = [1, 2, 2, 3, 4, 4, 5]
unique_numbers = list(set(numbers))
print(unique_numbers)  # [1, 2, 3, 4, 5] 출력

결론

파이썬 리스트는 다양한 데이터를 저장하고 조작하는 데 매우 유용한 데이터 구조입니다. 리스트의 다양한 메소드와 기능을 활용하면 복잡한 데이터 처리도 쉽게 할 수 있습니다. 리스트의 특성과 사용 방법을 잘 이해하고 활용하여 더 효율적인 파이썬 프로그래밍을 하시길 바랍니다.


데이터 구조와 같은 것을 배울 때는 사실 좀 지루할 수 있습니다. 특별히 지금 활용할 수 있는 방법도 알 수 없고 이러한 것이 왜 필요한지 알기 어렵기 때문입니다. 그럴 때는 역시 편하게 생각하고 이러한 게 있구나 정도 생각하고 넘어가시면 됩니다. 지금 여러분이 이 모든 것을 완벽하게 숙지한다 하여도 실전에서는 역시 헤매거나 버벅거릴 것이기 때문입니다. 어떤 특징이 있는지 어떻게 활용되는지 어떤 기능이 있는지 이러한 것들을 눈으로 익혀두시고 손으로 작성하시고 한 번씩 코드로 느껴보시면 충분합니다.

 

감사합니다!

반응형