Backend/Python

99클럽 코테 스터디 1일차 TIL + 리스트 컴프리헨션(List Comprehension)

미숫가루.dev 2024. 7. 22. 15:33

 오늘의 학습 키워드

리스트 컴프리헨션(List Comprehension)

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

표현식 : 리스트의 각 항목에 적용할 표현식
항목 : 반복 가능한 객체에서 가져온 항목
반복 가능한 객체 : 리스트, 튜플, 문자열 등 반복 가능한 모든 객체
조건 : (선택사항) 이 조건을 만족하는 항목만 리스트에 포함

✅ Python Code

# 기본 루프와 리스트 컴프리헨션
squares = []
for x in range(10):
	squares.append(x**2)
 
squares = [x**2 for x in range(10)]


# if 문을 사용하는 루프와 리스트 컴프리헨션
even_squares = []
for x in range(10):
	if x % 2 == 0:
    	even_squares.append(x**2)
        
even_squares = [x**2 for x in range(10) if x % 2 == 0]


# 중첩 루프와 리스트 컴프리헨션
combinations = []
for x in [1, 2, 3]:
	for y in [3, 1, 4]:
    	if x != y:
        	combinsations.append((x, y))
            
 combinations = [(x, y) for x in [1, 2, 3] for y in [3, 1, 4] if x != y]

✅ 리스트 컴프리헨션의 장점

1. 간결하고 가독성이 좋아집니다.
2. 코드 작성이 더 빨라집니다.
3. 기존의 for 루프보다 더 짧은 코드로 동일한 작업을 수행할 수 있습니다.

✅ 회고

코딩 테스트 스터디 중 10,000,000,000이하인 자연수를 입력받아 배열 형태로 변환하는 방법이 필요하였다.
이 때 선택한 방법이 자연수를 문자열로 바꾸고 각 항목을 정수형으로 바꾼뒤 배열화 하기 위하여 리스트 컴프리헨션을 사용하였다.

array = [int(digit) for digit in number_str]

표현식 : int()
항목 : digit
반복 가능한 객체 : number_str