✅ List(리스트)
리스트(List)는 여러 개의 데이터를 하나의 변수에 저장할 수 있는 자료형입니다. 파이썬에서 가장 많이 사용되는 자료구조 중 하나로, 변경 가능(mutable) 하고 다양한 데이터 타입을 포함할 수 있습니다.
특징 | 설명 |
순서가 있다 | 리스트는 순서가 있는 데이터 구조(Ordered)입니다. |
변경 가능 | 리스트의 요소를 변경, 추가, 삭제할 수 있습니다. |
여러 자료형 저장 가능 | 숫자, 문자열, 리스트 등 다양한 데이터 타입을 포함할 수 있습니다. |
인덱싱과 슬라이싱 가능 | 리스트 요소에 인덱스로 접근할 수 있으며 일부를 추출할 수도 있습니다. |
✅ 리스트 생성 방법
# 빈 리스트 생성
empty_list = []
# 정수형 리스트
numbers = [1, 2, 3, 4, 5]
# 문자열 리스트
words = ["apple", "banana", "cherry"]
# 혼합된 데이터 타입
mixed = [1, "hello", 3.14, True]
# 리스트 안에 리스트 포함 (중첩 리스트)
nested = [[1, 2, 3], ["a", "b", "c"]]
✅ 리스트 인덱싱 & 슬라이싱
리스트에서 특정 요소를 가져오거나 조작할 때 가장 많이 사용하는 기능이 인덱싱(Indexing)과 슬라이싱(Slicing) 입니다.
이 기능을 활용하면 리스트에서 원하는 요소만 쉽게 추출할 수 있습니다.
# 리스트 생성
numbers = [10, 20, 30, 40, 50, 60, 70, 80]
# ✅ 인덱싱 (Indexing)
print(numbers[0]) # 10 (첫 번째 요소)
print(numbers[-1]) # 80 (마지막 요소)
print(numbers[2]) # 30 (세 번째 요소)
print(numbers[-3]) # 60 (뒤에서 세 번째 요소)
# ✅ 슬라이싱 (Slicing)
print(numbers[1:4]) # [20, 30, 40] (1번부터 3번까지 가져옴)
print(numbers[:3]) # [10, 20, 30] (처음부터 2번까지)
print(numbers[3:]) # [40, 50, 60, 70, 80] (3번부터 끝까지)
print(numbers[::2]) # [10, 30, 50, 70] (2칸씩 건너뛰기)
print(numbers[::-1]) # [80, 70, 60, 50, 40, 30, 20, 10] (리스트 뒤집기)
# ✅ 값 변경 (Slicing 활용)
numbers[1:4] = [99, 88, 77]
print(numbers) # [10, 99, 88, 77, 50, 60, 70, 80] (1~3번 변경)
# ✅ 슬라이싱을 이용한 삭제
numbers[2:4] = []
print(numbers) # [10, 99, 50, 60, 70, 80] (88, 77 삭제됨)
# ✅ 문자열에서도 슬라이싱 가능
text = "Hello, World!"
print(text[:5]) # Hello
print(text[::-1]) # !dlroW ,olleH (문자열 뒤집기)
✅ List Comprehension ( 리스트 컴프리헨션 )
리스트에서 특정 요소를 가져오거나 조작할 때 가장 많이 사용하는 기능이 인덱싱(Indexing)과 슬라이싱(Slicing) 입니다.
이 기능을 활용하면 리스트에서 원하는 요소만 쉽게 추출할 수 있습니다.
new_list = [표현식 for 요소 in 반복가능한객체 if 조건]
# 예제 (1~5까지 숫자의 제곱 리스트 생성):
squares = [x ** 2 for x in range(1, 6)]
print(squares) # [1, 4, 9, 16, 25]
✅ 이해를 돕기 위한 코드
# ✅ 리스트 컴프리헨션 예제 모음
# 1. 1부터 5까지의 숫자로 리스트 생성
numbers = [x for x in range(1, 6)]
print("1. 숫자 리스트:", numbers)
# 출력: [1, 2, 3, 4, 5]
# 2. 각 숫자를 제곱한 리스트 생성
squares = [x ** 2 for x in range(1, 6)]
print("2. 제곱 리스트:", squares)
# 출력: [1, 4, 9, 16, 25]
# 3. 1부터 10까지 숫자 중 짝수만 추출
even_numbers = [x for x in range(1, 11) if x % 2 == 0]
print("3. 짝수 리스트:", even_numbers)
# 출력: [2, 4, 6, 8, 10]
# 4. 짝수는 그대로, 홀수는 '홀수'로 변환
odd_even = [x if x % 2 == 0 else "홀수" for x in range(1, 6)]
print("4. 홀수 변환 리스트:", odd_even)
# 출력: ['홀수', 2, '홀수', 4, '홀수']
# 5. 단어 리스트에서 각 단어의 길이만 추출
words = ["apple", "banana", "cherry"]
word_lengths = [len(word) for word in words]
print("5. 단어 길이 리스트:", word_lengths)
# 출력: [5, 6, 6]
# 6. 3x3 행렬 생성
matrix = [[x for x in range(1, 4)] for _ in range(3)]
print("6. 3x3 행렬:", matrix)
# 출력: [[1, 2, 3], [1, 2, 3], [1, 2, 3]]
# 7. 중첩 리스트를 1차원 리스트로 변환 (Flatten)
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flat_list = [num for sublist in nested_list for num in sublist]
print("7. 중첩 리스트 평탄화:", flat_list)
# 출력: [1, 2, 3, 4, 5, 6, 7, 8, 9]
'Python Basic Syntax (파이썬 기초 문법) > Data Structures (자료구조)' 카테고리의 다른 글
Matrix Control (행렬 조작법) (0) | 2025.02.16 |
---|---|
Matrix, 2D List (2차원 리스트) (0) | 2025.02.16 |
Stack , Queue, Deque (스택, 큐, 덱) (0) | 2025.02.13 |