Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 |
Tags
- 데이터
- 병렬연산
- 병렬처리
- 컴퓨터
- 순차구조
- 그리드컴퓨팅
- Python
- 데이터구조
- 회로
- 병렬컴퓨팅
- 배시쉘
- 반복구조
- 자료구조
- 2진수
- 이진수
- 클라우드컴퓨팅
- Python Programming
- 분산켬퓨팅
- 컴퓨팅
- 알고리즘
- 분산처리
- 선태구조
- 디지털회로
- 바이너리
- 비트
- 컴퓨팅사고력
- 디지털
- 분산컴퓨팅
- 아스키코드
- 쉘스크립트
Archives
- Today
- Total
데브로맨스
【 PYTHON 】 리스트 - 여러 데이터를 한 번에 관리하기 본문
>반응형
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 fruits → True |
존재 여부 확인 |
not in |
"망고" not in fruits → True |
미존재 확인 |
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