[Python 기초]

[Python] LIST 정리

dyk98 2024. 11. 26. 19:59

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

장점

  1. 동적 크기 조정
    • List는 크기가 가변적이어서 데이터를 동적으로 추가, 삭제, 수정할 수 있음.
  2. 다양한 데이터 타입 저장
    • 동일한 List에 서로 다른 데이터 타입 저장 가능.
    mixed_list = [1, "Alice", True]
    
  3. 풍부한 메서드 지원
    • 데이터를 정렬, 삽입, 삭제, 검색할 수 있는 다양한 내장 메서드 제공.
    my_list = [3, 1, 2]
    my_list.sort()  # 정렬
    print(my_list)  # [1, 2, 3]
    
  4. 유연한 데이터 관리
    • 슬라이싱, 반복문 등을 활용해 데이터를 유연하게 처리 가능.
    numbers = [1, 2, 3, 4, 5]
    print(numbers[1:4])  # [2, 3, 4]
    
  5. 빠른 데이터 처리
    • Python의 C 기반 구현으로 인해 일반적인 데이터 처리 속도가 빠름.

단점

  1. 메모리 사용량
    • 동적 크기 조정을 위해 추가 메모리를 할당하므로 Tuple보다 메모리 사용량이 큼.
  2. 불변 데이터에 부적합
    • List는 변경 가능하므로, 고정된 데이터에 사용하면 의도치 않은 변경이 발생할 가능성 있음.
  3. 속도
    • 특정 작업(예: 검색, 삭제)에서 크기가 커질수록 성능이 떨어질 수 있음.

실제 프로젝트에서 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