관리 메뉴

데브로맨스

【 PYTHON 】 리스트 - 여러 데이터를 한 번에 관리하기 본문

>
카테고리 없음

【 PYTHON 】 리스트 - 여러 데이터를 한 번에 관리하기

데브로맨스 2026. 1. 18. 21:31
반응형

Python 기초 문법 - 데이터 다루기

리스트(List) - 여러 데이터를 한 번에 관리하기

"여러 개의 물건을 냉장고 트레이처럼 정돈해 두는 방법"


무엇이 리스트인가?

리스트(List)는 같은 유형 또는 다른 유형의 데이터 항목들이 순서 있게 배열된 컨테이너입니다. 여러 개의 데이터를 하나로 묶어 관리할 수 있는 저장소 역할을 합니다.

현실 세계 비유

개념 예시
리스트 장바구니에 채워진 다양한 물품들
항목(요소) 장바구니 안의 개별 상품 (사과, 배, 우유타이드 등)
순서 먼저 넣은 것이 앞쪽에 위치

리스트 생성 방법

1. 대괄호 문법

# 빈 리스트 만들기
my_list = []

# 항목 추가한 리스트
fruits = ["사과", "배", "딸기", "귤"]
numbers = [1, 2, 3, 4]
mixed_data = ["Python", 3.14, True, [1, 2]]

2. list() 함수 생성

# 반복 가능한 객체를 리스트로 변환
text = "PYTHON"
char_list = list(text)  # ['P', 'Y', 'T', 'H', 'O', 'N']

# range 객체 활용
number_list = list(range(5))  # [0, 1, 2, 3, 4]

3. 리스트 컴프리헨션 (고급 기법)

squared_numbers = [x*x for x in range(1, 6)]
# 결과: [1, 4, 9, 16, 25]

리스트 주요 연산

연산 예시 설명
len() len(fruits) → 4 항목 수 계산
+ ["사과"] + ["배"]['사과', '배'] 리스트 병합
* [1, 2] * 3[1, 2, 1, 2, 1, 2] 반복 확장
in "딸기" in fruitsTrue 존재 여부 확인
not in "망고" not in fruitsTrue 미존재 확인
fruits = ["사과", "배", "딸기"]

print(len(fruits))         # 3
print("딸기" in fruits)    # True
print(["사과"] + ["귤"])   # ['사과', '귤']

리스트 인덱싱 & 슬라이스

기본 접근 방법

employees = ["아이유", "박효신", "김태희", "전지연"]
# 단일 항목 추출
print(employees[0])      # 아이유 (첫 번째)
print(employees[-1])     # 전지연 (마지막)

# 범위 슬라이스
print(employees[1:3])    # ['박효신', '김태희']  
print(employees[:2])     # ['아이유', '박효신']

시각화: 인덱싱 구조

인덱스 위치:
 0       1         2        3        
┌────────┬─────────┬────────┬──────┐
│ 아이유 │ 박효신  │ 김태희 │ 전지연 │
└────────┴─────────┴────────┴──────┘

리스트 수정 방법

항목 변경

# 특정 위치 값 업데이트
employees[2] = "조인성"
print(employees)  # ['아이유', '박효신', '조인성', '전지연']

항목 추가

# 끝에 추가
employees.append("강남준")
print(employees)  # ['아이유', '박효신', '조인성', '전지연', '강남준']

# 특정 위치 삽입
employees.insert(1, "서현진")
print(employees)  # ['아이유', '서현진', '박효신', ...]

항목 삭제

# 값 기반 제거
employees.remove("박효신")

# 인덱스 기반 제거
del employees[0]

# 마지막 요소 팝업(추출)
last_person = employees.pop()

리스트 비교: 튜플 vs 리스트

특성 리스트 튜플(고정형)
수정 가능 ✅ 예 (가변적) ❌ 불가능(불변적)
성능 🔧 느릴 수 있음 ⚡ 빠름
사용처 데이터 관리, 처리 상수값, 키 저장
생성자 [] 또는 list() () 또는 tuple()
# 리스트 예제
shopping = ["우유", "버섯"]
shopping.append("계란")

# 튜플 예제 (추가 불가)
grocery = ("과일", "야채")
grocery[0] = "농산물"  # ✗ 오류 발생!

실전 팁

🔥 리스트 복사 주의점

original = [1, 2, 3]
copied = original[:]     # 정확한 방법 ✓
modified = copied.copy() # 메서드 사용 ✓
bad_copy = original      # 같은 참조! ✗

💡 깊은 복사 필요 시

nested = [[1], [2]]
deep_copied = copy.deepcopy(nested)

⚠️ 주의: == vs is

a = [1, 2]
b = [1, 2]
print(a == b)   # True (내용 비교)
print(a is b)   # False (동일 객체 여부)

연습 문제

문제 1: 학생 명단을 만들고 정렬해보세요

students = ["민지", "수아", "하연"]
# 알파벳 순으로 오름차순 정렬
students.sort()
print(students)  # ['하연', '민지', '수아']

문제 2: 숫자 리스트 필터링

numbers = [10, 5, 20, 3, 15]
# 10보다 큰 수만 추출
large_numbers = [x for x in numbers if x > 10]
print(large_numbers)  # [10, 20, 15]

문제 3: 리스트 안의 리스트 처리

matrix = [[1, 2], [3, 4], [5, 6]]
# 모든 항목 합계 계산
total = sum([num for row in matrix for num in row])
print(total)  # 21

다음 단계

  • 사전(Dictionary): 키-값 쌍으로 데이터 저장
  • 집합(Set): 중복 없는 고유 항목 관리
  • 튜플(Tuple): 변경 불가능한 안정형 리스트

리스트를 익힌 후에는 실제 데이터 분석, 자동화 작업 등에 바로 적용해보세요!

반응형
Comments