List
List는 Python에서 가장 널리 사용되는 자료구조로, 변경 가능한(Mutable) 순서가 있는 데이터 컬렉션입니다.
동적으로 크기를 조정할 수 있어 다양한 데이터를 효율적으로 다룰 수 있습니다.
# 리스트 생성
fruits = ["apple", "banana", "cherry"]
# 리스트 요소 접근
print(fruits[0]) # apple
# 리스트 요소 변경
fruits[1] = "blueberry"
print(fruits) # ['apple', 'blueberry', 'cherry']
# 리스트에 요소 추가
fruits.append("orange")
print(fruits) # ['apple', 'blueberry', 'cherry', 'orange']
# 리스트에서 요소 제거
fruits.remove("blueberry")
print(fruits) # ['apple', 'cherry', 'orange']
# 리스트 길이 확인
print(len(fruits)) # 3
장점
- 동적 크기 조정
- List는 크기가 가변적이어서 데이터를 동적으로 추가, 삭제, 수정할 수 있음.
- 다양한 데이터 타입 저장
- 동일한 List에 서로 다른 데이터 타입 저장 가능.
mixed_list = [1, "Alice", True]
- 풍부한 메서드 지원
- 데이터를 정렬, 삽입, 삭제, 검색할 수 있는 다양한 내장 메서드 제공.
my_list = [3, 1, 2] my_list.sort() # 정렬 print(my_list) # [1, 2, 3]
- 유연한 데이터 관리
- 슬라이싱, 반복문 등을 활용해 데이터를 유연하게 처리 가능.
numbers = [1, 2, 3, 4, 5] print(numbers[1:4]) # [2, 3, 4]
- 빠른 데이터 처리
- Python의 C 기반 구현으로 인해 일반적인 데이터 처리 속도가 빠름.
단점
- 메모리 사용량
- 동적 크기 조정을 위해 추가 메모리를 할당하므로 Tuple보다 메모리 사용량이 큼.
- 불변 데이터에 부적합
- List는 변경 가능하므로, 고정된 데이터에 사용하면 의도치 않은 변경이 발생할 가능성 있음.
- 속도
- 특정 작업(예: 검색, 삭제)에서 크기가 커질수록 성능이 떨어질 수 있음.
실제 프로젝트에서 List 가 사용되는 상황
1. 동적인 데이터 관리
List는 데이터를 동적으로 추가하거나 제거해야 하는 경우 가장 많이 사용됩니다.
- 사용 예시: 쇼핑몰에서 장바구니 항목 관리.
cart = []
cart.append("Laptop")
cart.append("Mouse")
cart.remove("Laptop")
print(cart) # ['Mouse']
2. 반복 작업
List는 반복문을 사용한 작업에서 자주 사용됩니다.
- 사용 예시: 파일에서 데이터를 읽어와 특정 작업을 수행.
lines = ["line1", "line2", "line3"]
for line in lines:
print(line)
3. 데이터 컬렉션과 정렬
정렬, 필터링 등의 작업을 쉽게 처리할 수 있어 데이터 분석에서 자주 사용됩니다.
- 사용 예시: 숫자 데이터를 정렬한 후 상위 값을 추출.
scores = [50, 80, 90, 70, 60]
scores.sort(reverse=True)
print(scores[:3]) # [90, 80, 70]
4. API 응답 처리
JSON 형식으로 반환된 데이터는 대개 List로 표현됩니다.
- 사용 예시: REST API에서 받은 데이터를 처리.
response = [
{"id": 1, "name": "Alice"},
{"id": 2, "name": "Bob"}
]
names = [user["name"] for user in response]
print(names) # ['Alice', 'Bob']
5. 다차원 데이터 처리
List를 중첩해 2D 배열 또는 행렬처럼 사용할 수 있어 게임, 그래픽, 데이터 과학 분야에서 사용됩니다.
- 사용 예시: 행렬 연산.
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
print(matrix[1][2]) # 6
6. 큐와 스택 구현
List를 사용해 큐(Queue)와 스택(Stack)을 쉽게 구현할 수 있습니다.
- 큐 예시:
- queue = [1, 2, 3] queue.append(4) # 삽입 print(queue.pop(0)) # 삭제: 1
- 스택 예시:
- stack = [1, 2, 3] stack.append(4) # 삽입
7. 데이터 필터링 및 변환
List 를 활용해 데이터 필터링 및 변환 작업을 효율적으로 수행합니다.
- 사용 예시: 짝수만 추출하기.
numbers = [1, 2, 3, 4, 5]
evens = [n for n in numbers if n % 2 == 0]
print(evens) # [2, 4]
8. 유저 입력 관리
사용자 입력을 처리하거나 여러 값을 저장하는 데 사용됩니다.
- 사용 예시: 채팅방에서 유저 메시지 저장.
messages = []
messages.append("Hi!")
messages.append("How are you?")
print(messages) # ['Hi!', 'How are you?']
List는 동적 데이터 관리가 필요한 프로젝트에서 필수적인 자료구조.
동적 크기 조정, 풍부한 메서드 지원, 다양한 타입의 데이터 저장 기능으로 웹 개발, 데이터 분석, 게임 개발 등 다양한 프로젝트에서 폭넓게 활용됨.
'[Python 기초]' 카테고리의 다른 글
[Python] Data type 정리 (0) | 2024.11.26 |
---|---|
[Python] SET 정리 (0) | 2024.11.26 |
[Python] Dictionary 정리 (2) | 2024.11.26 |
[Python] Hash 간단 정리 (0) | 2024.11.26 |
[Python] TUPLE 정리 (1) | 2024.11.26 |