🧠 리스트 컴프리헨션(List Comprehension) 완벽 가이드 + .join() 활용 예시

2025. 4. 29. 22:19·기술블로그

🧠 리스트 컴프리헨션(List Comprehension) 완벽 가이드 + .join() 활용 예시

리스트 컴프리헨션은 파이썬에서 리스트를 간결하게 생성할 수 있는 문법입니다. 기존의 for문을 줄여 한 줄로 표현할 수 있어 짧고 가독성이 좋은 코드를 만들 수 있습니다.

또한, 리스트로 만든 데이터를 문자열로 변환할 때 자주 쓰이는 메서드인 .join()도 함께 알아두면 유용합니다.


✅ 기본 문법

[표현식 for 항목 in 반복가능한_객체]

예:

numbers = [1, 2, 3, 4, 5]
squares = [n**2 for n in numbers]  # [1, 4, 9, 16, 25]

➕ 해석:

"numbers 안에 있는 n들을 하나씩 꺼내서, 각각을 제곱한 값을 새로운 리스트 squares에 넣어라"


🔁 for문과의 비교

# 일반 for문
squares = []
for n in numbers:
    squares.append(n**2)

# 리스트 컴프리헨션
squares = [n**2 for n in numbers]

결과는 동일하지만 코드 길이와 가독성이 달라집니다.


🎯 조건문 추가하기

# 짝수만 제곱해서 리스트 만들기
[n**2 for n in numbers if n % 2 == 0]  # [4, 16]

➕ 해석:

"numbers 안에 있는 n들 중에서 짝수인 것만 골라, 제곱한 값을 리스트로 만든다"


🎥 실전 예제: 영화 제목만 추출하기

movie_list = [
    {'title': '어벤져스', 'year': 2012},
    {'title': '기생충', 'year': 2019},
    {'title': '인셉션', 'year': 2010}
]

# 일반 for문 방식
movie_titles = []
for movie in movie_list:
    movie_titles.append(movie['title'])

# 리스트 컴프리헨션 방식
movie_titles = [movie['title'] for movie in movie_list]

➕ 해석 (for문 방식):

  • movie_titles라는 빈 리스트를 만든 다음
  • movie_list 안의 각 movie를 반복하면서
  • 각 movie에서 'title'만 꺼내서 리스트에 추가한다

➕ 해석 (컴프리헨션 방식):

"movie_list 안에 있는 movie들 중에서 각 movie의 'title'만 뽑아서 새 리스트 movie_titles를 만들어라"


📦 다양한 예제들

  1. 1~10 중 짝수만 추출
[n for n in range(1, 11) if n % 2 == 0]  # [2, 4, 6, 8, 10]
  1. 문자열에서 알파벳만 추출
chars = ['a', '1', 'b', '2', 'c']
letters = [ch for ch in chars if ch.isalpha()]  # ['a', 'b', 'c']
  1. 이중 반복문
pairs = [(x, y) for x in [1, 2] for y in [3, 4]]
# [(1, 3), (1, 4), (2, 3), (2, 4)]

🔍 해석 (쉽게!)

[1, 2]에서 x를 하나씩 꺼내고,
그 x에 대해 [3, 4]에서 y를 하나씩 꺼내서,
(x, y) 형태로 튜플을 만든다.


🔁 실제 실행 순서

  1. x = 1
    • y = 3 → (1, 3)
    • y = 4 → (1, 4)
  2. x = 2
    • y = 3 → (2, 3)
    • y = 4 → (2, 4)

 

🔗 문자열 결합: .join() 활용 예제

.join()은 문자열 리스트를 하나의 문자열로 합칠 때 사용하는 문자열 메서드입니다.

✅ 기본 문법

'구분자'.join(리스트)

🎯 실전 예제

  1. 단어를 공백으로 연결하기
words = ['I', 'love', 'Python']
sentence = ' '.join(words)
# 결과: 'I love Python'
  1. 날짜 포맷 만들기
date_parts = ['2025', '04', '29']
date_str = '-'.join(date_parts)
# 결과: '2025-04-29'
  1. HTML 줄바꿈 태그로 연결하기
movie_titles = ['어벤져스', '기생충', '인셉션']
response_text = '<br>'.join(movie_titles)
# 결과: '어벤져스<br>기생충<br>인셉션'
  1. 빈 문자열로 연결 (문자 붙이기)
digits = ['1', '2', '3']
result = ''.join(digits)
# 결과: '123'

⚠️ 주의 사항

  • join 대상은 문자열 리스트여야 합니다.
  • 숫자가 들어 있으면 에러 발생하므로, str()로 바꿔야 합니다:
numbers = [1, 2, 3]
''.join(str(n) for n in numbers)  # '123'

✅ 요약

기능 메서드 예시 결과

리스트 만들기 리스트 컴프리헨션 [1, 2, 3]
리스트를 문자열로 .join() '1,2,3', 'a b c' 등

필요하다면 .split() (문자열 나누기), .replace(), 포맷팅 등 문자열 처리 도구도 함께 익혀보면 좋습니다! 😊

'기술블로그' 카테고리의 다른 글

🔢 enumerate() 함수 완벽 가이드 – 인덱스와 함께 반복하자!  (0) 2025.04.29
⚠️ raise 문법 완벽 가이드 – 예외 처리의 핵심  (0) 2025.04.29
✅ Python 환경 설정부터 Django 프로젝트 시작까지 (feat. pyenv, Pycharm, Poetry)  (0) 2025.04.29
✅ Python 환경 설정부터 Django 설치 (feat. pyenv, Pycharm, Poetry)  (0) 2025.04.29
Chapter 1-8 Django 템플릿 설정 및 문법 기초 정리  (0) 2025.04.29
'기술블로그' 카테고리의 다른 글
  • 🔢 enumerate() 함수 완벽 가이드 – 인덱스와 함께 반복하자!
  • ⚠️ raise 문법 완벽 가이드 – 예외 처리의 핵심
  • ✅ Python 환경 설정부터 Django 프로젝트 시작까지 (feat. pyenv, Pycharm, Poetry)
  • ✅ Python 환경 설정부터 Django 설치 (feat. pyenv, Pycharm, Poetry)
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (472) N
      • Python (31)
      • 프로젝트 (43)
      • 과제 (21)
      • Database (40)
      • 멘토링 (7) N
      • 특강 (18)
      • 기술블로그 (126) N
      • AI 분석 (4)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (34) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
🧠 리스트 컴프리헨션(List Comprehension) 완벽 가이드 + .join() 활용 예시
상단으로

티스토리툴바