Python 리스트 소개
Python에서 가장 기본적이고 많이 사용되는 자료구조 중 하나는 '리스트(List)'입니다. 리스트는 여러 개의 값을 하나의 변수에 저장할 수 있는 자료형으로, 유연하고 사용하기 쉬워 Python 프로그래밍에서 중요한 역할을 합니다. 이번 포스팅에서는 Python의 리스트가 어떤 특징을 가지고 있으며, 기본적인 조작 방법을 어떻게 사용하는지 알아보겠습니다.
리스트란 무엇인가요?
리스트는 여러 개의 데이터를 순서대로 저장할 수 있는 가변적 크기의 배열입니다. 리스트는 다양한 자료형의 데이터를 혼합하여 저장할 수 있으며, 각 항목은 인덱스를 통해 접근할 수 있습니다. Python에서 리스트는 대괄호 []
로 정의하며, 요소들은 쉼표 ,
로 구분합니다.
my_list = [1, 2, 3, "Hello", True]
위 코드에서 정의된 my_list
는 정수, 문자열, 그리고 불리언 값을 모두 포함하는 리스트입니다. 리스트는 이처럼 서로 다른 자료형의 요소들을 하나의 리스트 안에 저장할 수 있다는 장점이 있습니다.
리스트의 특징
- 순서가 있는 데이터 구조: 리스트는 요소들이 입력된 순서대로 저장됩니다. 따라서 각 요소는 순서(인덱스)를 가지며, 이 순서를 이용해 접근하거나 수정할 수 있습니다.
- 가변적 데이터 구조: 리스트의 크기는 동적으로 변할 수 있습니다. 요소를 추가하거나 제거하면서 리스트의 크기를 자유롭게 조절할 수 있습니다.
- 중복된 데이터 허용: 리스트는 중복된 값을 허용합니다. 동일한 값이 여러 번 리스트에 존재할 수 있습니다.
리스트 사용법
리스트는 Python에서 매우 유용한 도구이며, 다양한 조작 방법들이 제공됩니다. 여기서는 기본적인 사용법에 대해 알아보겠습니다.
리스트 생성
리스트는 대괄호 []
를 사용하여 생성할 수 있으며, 내부에 값을 쉼표로 구분하여 작성하면 됩니다.
# 빈 리스트 생성
empty_list = []
# 초기 값을 가지는 리스트 생성
numbers = [1, 2, 3, 4, 5]
# 서로 다른 자료형을 포함하는 리스트 생성
mixed_list = ["apple", 3.14, False]
리스트 인덱싱과 슬라이싱
리스트는 각 요소에 대해 인덱스를 통해 접근할 수 있습니다. Python의 리스트 인덱스는 0부터 시작하며, 음수 인덱스를 사용해 뒤에서부터 접근할 수도 있습니다.
my_list = [10, 20, 30, 40, 50]
# 인덱싱
print(my_list[0]) # 출력: 10
print(my_list[-1]) # 출력: 50
# 슬라이싱
print(my_list[1:4]) # 출력: [20, 30, 40]
print(my_list[:3]) # 출력: [10, 20, 30]
print(my_list[3:]) # 출력: [40, 50]
슬라이싱을 이용하면 리스트의 특정 구간을 잘라낼 수 있으며, 원본 리스트는 변하지 않고 새로운 리스트가 반환됩니다.
리스트 조작
1. 요소 추가 (append
, insert
)
append()
: 리스트의 맨 끝에 요소를 추가합니다.insert()
: 특정 위치에 요소를 삽입합니다.
my_list = [1, 2, 3]
# append 사용
my_list.append(4)
print(my_list) # 출력: [1, 2, 3, 4]
# insert 사용
my_list.insert(1, 10)
print(my_list) # 출력: [1, 10, 2, 3, 4]
2. 요소 제거 (remove
, pop
, del
)
remove()
: 특정 값을 찾아 제거합니다. 값이 여러 번 존재하면 첫 번째로 찾은 값만 제거합니다.pop()
: 지정한 인덱스의 요소를 제거하고, 그 값을 반환합니다. 인덱스를 생략하면 마지막 요소를 제거합니다.del
: 리스트의 특정 위치의 요소를 제거합니다.
my_list = [1, 2, 3, 4, 5]
# remove 사용
my_list.remove(3)
print(my_list) # 출력: [1, 2, 4, 5]
# pop 사용
value = my_list.pop(1)
print(value) # 출력: 2
print(my_list) # 출력: [1, 4, 5]
# del 사용
del my_list[0]
print(my_list) # 출력: [4, 5]
3. 리스트 확장 (extend
)
extend()
메소드를 사용하여 다른 리스트의 요소들을 현재 리스트에 추가할 수 있습니다.
list1 = [1, 2, 3]
list2 = [4, 5, 6]
list1.extend(list2)
print(list1) # 출력: [1, 2, 3, 4, 5, 6]
리스트의 길이 구하기 (len
)
리스트의 요소 개수를 알고 싶을 때는 len()
함수를 사용합니다.
my_list = [1, 2, 3, 4, 5]
print(len(my_list)) # 출력: 5
리스트의 기타 메소드
sort()
: 리스트의 요소를 오름차순으로 정렬합니다. 내림차순으로 정렬하려면reverse=True
를 인자로 전달합니다.reverse()
: 리스트의 요소 순서를 역순으로 뒤집습니다.index()
: 리스트에서 특정 값의 인덱스를 반환합니다. 값이 여러 번 존재할 경우 첫 번째로 찾은 인덱스를 반환합니다.count()
: 리스트에서 특정 값이 몇 번 나타나는지 반환합니다.
my_list = [3, 1, 4, 1, 5, 9]
# sort 사용
my_list.sort()
print(my_list) # 출력: [1, 1, 3, 4, 5, 9]
# reverse 사용
my_list.reverse()
print(my_list) # 출력: [9, 5, 4, 3, 1, 1]
# index 사용
print(my_list.index(4)) # 출력: 2
# count 사용
print(my_list.count(1)) # 출력: 2
리스트와 반복문
리스트는 반복문을 사용해 요소들을 쉽게 처리할 수 있습니다. for
문을 사용해 리스트의 각 요소에 접근할 수 있습니다.
my_list = ["apple", "banana", "cherry"]
for fruit in my_list:
print(fruit)
# 출력:
# apple
# banana
# cherry
리스트의 인덱스와 값을 동시에 얻고 싶다면 enumerate()
함수를 사용할 수 있습니다.
for index, value in enumerate(my_list):
print(f"Index: {index}, Value: {value}")
# 출력:
# Index: 0, Value: apple
# Index: 1, Value: banana
# Index: 2, Value: cherry
리스트 컴프리헨션
리스트 컴프리헨션(List Comprehension)은 리스트를 간결하고 효율적으로 생성할 수 있는 Python의 특별한 문법입니다. 이를 사용하면 반복문과 조건문을 한 줄로 표현하여 새로운 리스트를 만들 수 있습니다.
# 기존 방법으로 리스트 생성
squares = []
for x in range(10):
squares.append(x ** 2)
# 리스트 컴프리헨션을 사용한 리스트 생성
squares = [x ** 2 for x in range(10)]
print(squares) # 출력: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
조건문을 추가하여 특정 조건을 만족하는 요소만 선택할 수도 있습니다.
even_squares = [x ** 2 for x in range(10) if x % 2 == 0]
print(even_squares) # 출력: [0, 4, 16, 36, 64]
정리
Python의 리스트는 순서가 있는 여러 데이터를 저장하고, 이를 유연하게 조작할 수 있는 매우 강력한 도구입니다. 리스트의 생성, 인덱싱, 슬라이싱, 요소 추가/제거, 정렬 등 기본적인 사용법을 익히면 데이터 처리를 보다 쉽고 효율적으로 할 수 있습니다. 앞으로 Python에서 데이터를 다룰 때 리스트를 잘 활용해 보세요!
'Python > Python' 카테고리의 다른 글
Python 튜플(Tuple) 소개 (0) | 2025.06.23 |
---|---|
Python 리스트의 고급 기능과 효율적인 활용 방법 (0) | 2025.06.22 |
Python 연산자와 조건문 소개 (0) | 2025.06.19 |
Python 자료형 소개 (0) | 2025.06.18 |
Python 기초 문법 소개 (0) | 2025.06.17 |