반응형
리스트 내포, 리스트 컴프리헨션이라고도 불리는 리스트 표현식에 대해 알아보겠습니다.
파이썬은 리스트 안에 for 반복문과 if 조건문을 사용할 수 있습니다. 이것을 리스트 표현식이라고 하는데요, 이 리스트 표현식을 이용해 식을 좀 더 간단하게 표현할 수 있습니다.
0부터 9까지의 숫자를 담은 리스트를 생성하려면 어떻게 해야할까요.
>>> a = []
>>> for i in range(10):
a.append(i)
>>> a
[0, 1, 2, 3, 4]
빈 리스트 a를 생성한 후 for 반복문과 range를 사용해 0부터 9까지의 숫자를 append를 이용해 리스트에 넣어주면 됩니다. 이렇게도 리스트를 생성할 수 있지만 리스트 표현식을 이용하면 한 문장으로 리스트를 생성할 수 있습니다.
>>> a = [i for i in range(10)]
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
range에서 생성한 숫자를 i로 보내준 후 i에서 숫자를 꺼내 리스트를 생성합니다. 똑같은 리스트를 생성하는데 식이 한 문장으로 줄어든 것을 볼 수 있습니다. 리스트명 = [식 for 변수 in 리스트] 형식으로 표현하면 됩니다.
>>> a = [i * 2 for i in range(10)]
>>> a
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
만약 식을 다른 값에 연산한다면 생성한 숫자들이 식안으로 들어가 연산된 숫자가 a 리스트 안에 들어가게 됩니다.
>>> a = [1 for i in range(10)]
>>> a
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
만약 식에 숫자가 들어가게 된다면 range안의 숫자가 1로 변환되어 a 리스트 안에 들어가게 됩니다.
>>> a = list(range(10))
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
range를 list로 묶어주어 리스트를 생성하는 방법도 있습니다. 이 방법도 물론 간단하지만, 리스트 표현식을 이용하면 if 조건문을 이용할 수 있습니다.
>>> a = [i for i in range(10) if i % 3 == 0]
>>> a
[0, 3, 6, 9]
이렇게 if 조건문을 붙여주면, 리스트안에 조건에 맞는 숫자가 들어가게 됩니다.
반응형
'Python' 카테고리의 다른 글
[Python] if, else, elif (0) | 2021.04.05 |
---|---|
[Python] 2차원 리스트 (0) | 2021.03.29 |
[Python] 리스트 조작 (0) | 2021.03.28 |
[Python] 시퀀스 자료형(sequence types) (0) | 2021.03.15 |
[Python] input() (0) | 2021.03.14 |