리스트 컴프리헨션

리스트 컴프리헨션은 파이썬 리스트를 만드는 간결한 방법입니다.


a = [1, 2, 3, 4, 5]
a_square = [1, 4, 9, 16, 25]

a라는 리스트에 대해 각 요소의 제곱의 값을 갖는 a_square와 같은 새로운 리스트를 만들려고 합니다.



리스트 컴프리헨션을 사용하지 않는다면 아래와 같이 코드를 작성할 수 있습니다.

b = [1, 2, 3, 4, 5]
b_square = []
for n in b:
  b_square.append(n**2)

print(b_square)
[1, 4, 9, 16, 25]

b 리스트의 각 요소의 제곱의 값을 갖는 새로운 리스트 b_square가 만들어졌습니다.



만약 컴프리헨션을 사용한다면

c = [1, 2, 3, 4, 5]
c_square = [n**2 for n in c]

print(c_square)
[1, 4, 9, 16, 25]

위와 같이 훨씬 간결한 한 줄의 코드로 새로운 리스트를 만들 수 있습니다.

예제에서 볼 수 있듯이 리스트 컴프리헨션은 표현식(n**2)과 그 뒤의 for 절과 if 절들을 감싸는 대괄호([ ])로 구성됩니다. 그리고 그 결과는 새로운 리스트가 됩니다.



아래 코드는 두 개의 for 절과 조건식을 사용한 리스트 컴프리헨션의 예제입니다.

d = [(x, y) for x in [1, 2, 3] for y in [3, 1, 4] if x != y]
print(d)
[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]

리스트 [1, 2, 3]와 [3, 1, 4]의 각 요소 x, y에 대해 값이 같지 않은 경우만 표현식 (x, y) 튜플을 새로운 리스트의 요소로 만듭니다.


이전글/다음글