Notice
Recent Posts
Recent Comments
Link
«   2026/04   »
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
Archives
Today
Total
관리 메뉴

memo6759 님의 블로그

2025-09-17(컴프리헨션, 내장 함수,리스트, 튜플, 딕셔너리)-1 본문

HDC 학습일지

2025-09-17(컴프리헨션, 내장 함수,리스트, 튜플, 딕셔너리)-1

heewon09 2025. 9. 17. 18:36

파이썬 리스트 컴프리헨션(List Comprehension) 정리

 기본 for문으로 리스트 만들기

일반적으로 리스트를 만들 때는 for문과 append()를 사용합니다.

 

list1 = []
for i in range(1, 11):
    list1.append(i)

print(list1)  # [1, 2, 3, ..., 10]

하지만 이 방식은 코드가 다소 길어진다.

 

 리스트 컴프리헨션

리스트 컴프리헨션을 이용하면 한 줄로 동일한 결과를 얻을 수 있습니다

list2 = [i for i in range(1, 11)]
print(list2)  # [1, 2, 3, ..., 10]

 

  • 구조: [표현식 for 변수 in 반복가능객체 if 조건문(optional)]
  • 조건문을 추가하면 필터링도 가능
    예) [i for i in range(1, 11) if i % 2 == 0] ➜ 짝수만 추출

 연산 적용하기

생성되는 값에 간단한 연산을 바로 적용할 수도 있습니다.

list3 = [i + 10 for i in range(1, 11)]
print(list3)  # [11, 12, ..., 20]

 

 반복 변수 사용하지 않기

반복문에서 인덱스를 사용하지 않을 때는 관례적으로 _(언더스코어)를 씁니다.

import random
list4 = [random.randint(0, 100) for _ in range(1, 11)]
print(list4)  # 예: [32, 7, 88, ...]

_는 단순히 “변수 값을 쓰지 않겠다”는 표시일 뿐, 동작에는 영향이 없습니다.

 

 정리

  • 장점: 코드가 짧고 가독성이 좋음
  • 응용: 조건문, 연산, 중첩 for문 모두 사용 가능

Python 리스트 컴프리헨션 정리

Python에서는 리스트를 만들 때 for문을 반복해서 append()하는 방식 대신,
**리스트 컴프리헨션(List Comprehension)**을 사용하면 더 간결하고 직관적으로 표현할 수 있습니다.

 

1. 기본적인 리스트 생성

일반적인 for문을 이용해 1부터 10까지 숫자가 들어간 리스트를 만들어 보겠습니다.

list1 = []
for i in range(1, 11):
    list1.append(i)

print(list1)  # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

2. 리스트 컴프리헨션 기본 형태

위 코드를 한 줄로 간단하게 쓸 수 있습니다.

list2 = [i for i in range(1, 11)]
print(list2)  # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

 

  • [표현식 for 변수 in 반복] 구조로 되어 있습니다.
  • 반복문을 리스트 안에 직접 넣어 리스트를 생성합니다.

3. 연산을 활용한 리스트 컴프리헨션

표현식에 연산을 넣어 새로운 값을 만들 수도 있습니다.

list3 = [i + 10 for i in range(1, 11)]
print(list3)  # [11, 12, 13, 14, 15, 16, 17, 18, 19, 20]

 

4. random과 함께 사용하기

리스트 컴프리헨션 안에서 함수 호출도 가능합니다.
아래는 0~100 사이의 랜덤 정수를 10개 생성하는 예제입니다.

import random

list4 = [random.randint(0, 100) for _ in range(1, 11)]
print(list4)  
# 예시 출력: [87, 23, 65, 4, 100, 12, 90, 33, 76, 55]

여기서 _는 반복문 변수(i)를 사용하지 않겠다는 의미입니다.

5. 조건문을 활용한 리스트 컴프리헨션

if 조건을 붙이면 특정 조건을 만족하는 값만 리스트에 담을 수 있습니다.

list5 = [i for i in range(1, 11) if i % 2 == 0]
print(list5)  # [2, 4, 6, 8, 10]

6. 리스트 컴프리헨션 구조 정리

리스트 컴프리헨션은 다음과 같은 구조를 가집니다:

[표현식 for 변수 in 반복 if 조건식]

 

  • 표현식 → 리스트에 담을 값 (연산, 변수, 함수 호출 등 가능)
  • for 변수 in 반복 → 반복문
  • if 조건식 → 조건을 만족할 때만 값 추가 (선택 사항)

정리

  • 리스트 컴프리헨션은 리스트 생성 코드를 짧고 가독성 있게 작성할 수 있다.
  • 반복문, 연산, 조건식, 함수 호출까지 모두 활용 가능하다.
  • for문과 append()를 사용할 때보다 훨씬 파이썬다운 코드를 작성할 수 있다.

1. 리스트 (List)

  • 순서가 있는 데이터 구조
  • [] 대괄호를 사용해 정의
  • 인덱싱(indexing)과 슬라이싱(slicing) 가능
  • 데이터 수정 가능 (mutable)
  • 문자열, 정수 등 다양한 자료형을 함께 저장 가능

주요 특징

  • 인덱스 접근: list1[0], list1[-1]
  • 인덱스는 0부터 시작, 음수 인덱스로 역순 접근 가능
  • 슬라이싱: 특정 구간의 요소들을 잘라서 가져올 수 있음
    • 리스트[start:end:step] (end는 end-1까지 포함)
list1 = [10, 20, 30, 40, 50, 60]

print(list1[0])    # 10
print(list1[-1])   # 60

print(list1[1:4])     # [20, 30, 40]
print(list1[::2])     # [10, 30, 50]

 

주요 메소드

  • append(x) : 리스트 끝에 요소 추가
  • insert(i, x) : 특정 위치에 요소 삽입
  • remove(x) : 지정한 요소 삭제
  • index(x) : 지정한 값의 인덱스 반환
  • sort() : 오름차순 정렬
  • reverse() : 역순으로 정렬
list2 = [3, 1, 4, 2]
list2.append(5)     # [3, 1, 4, 2, 5]
list2.sort()        # [1, 2, 3, 4, 5]
list2.reverse()     # [5, 4, 3, 2, 1]

2. 튜플 (Tuple)

  • 순서가 있는 데이터 구조
  • 리스트와 비슷하지만 값 변경 불가능 (immutable)
  • () 소괄호를 사용해 정의
  • 패킹(Packing)과 언패킹(Unpacking) 가능
  • 안전하게 묶어두고 싶은 고정된 데이터에 적합
t1 = (1, 2, 3)
print(t1[0])   # 1

# t1[0] = 100  # ❌ 에러 발생 (튜플은 수정 불가)

# 패킹 & 언패킹
t2 = (10, 20, 30)
a, b, c = t2
print(a, b, c)   # 10 20 30

활용 예시: 좌표, RGB 색상, 고정된 설정값 등

3. 딕셔너리 (Dictionary)

  • key와 value의 쌍으로 저장되는 데이터 구조
  • {} 중괄호를 사용해 정의
  • 순서를 가지지 않음 (Python 3.7+부터는 입력 순서를 기억하지만, 의미상 순서 없음)
  • 인덱싱/슬라이싱 불가능, 대신 key로 접근
person = {
    "name": "Alice",
    "age": 25,
    "city": "Seoul"
}

print(person["name"])  # Alice
print(person["age"])   # 25

특징

  • key는 중복 불가, 고유해야 함
  • value는 어떤 자료형이든 가능
  • key로 value를 빠르게 조회 가능

정리

자료구조                           순서            수정 가능           중복주요                사용 예시
리스트(List) O O O 여러 값 모아두고 자주 수정하는 경우
튜플(Tuple) O X O 고정된 데이터 묶음, 안전하게 보관
딕셔너리(Dictionary) X (의미상) O key는 X, value는 O key-value 형태 데이터 (예: 회원 정보, 설정값)