CODEDRAGON ㆍDevelopment/Python
리스트 내포(List Comprehension)
· 리스트의 [...] 괄호 안에 for 루프를 사용하면서 반복적으로 표현식(expression)을 실행해서 리스트 요소들을 정의하는 특별한 용법입니다.
· 입력 Sequence로부터 지정된 표현식에 따라 새로운 리스트 컬렉션을 만들어 줍니다.
리스트 내포 정의 형식
· 컬렉션으로부터 요소를 하나씩 가져와 표현식을 실행하여 그 결과를 리스트에 담는 방식입니다.
· 리스트 내포에 if 조건식은 옵션으로 추가할 수 있는데 조건식을 정의한 경우 for 루프에서 이 조건식에 맞는 요소만 표현식을 실행하게 됩니다.
· in 다음에 입력되는 컬렉션은 입력으로 사용되는 Iteration이 가능한 데이타 Sequence 혹은 컬렉션입니다. 입력 Sequence는 for 루프를 돌며 각각의 요소를 하나씩 가져오고, if 조건식이 있으면 해당 요소가 조건에 맞는지 체크하게 됩니다. 만약 조건에 맞으면 출력 표현식(Output Expression)에 각 요소를 대입하여 출력 결과를 얻게 됩니다. 이러한 과정을 모든 요소에 대해 실행한 결과를 리스트로 리턴하게 됩니다.
· 즉, for 루프를 돌면서 특정 조건에 있는 입력데이터를 변형하여 리스트로 출력하는 코드를 간단한 문법으로 표현한 것입니다.
[표현식 for 요소1 in 컬렉션] |
[표현식 for 요소1 in 컬렉션1 for 요소2 in 컬렉션2 # ... for 요소N in 컬렉션N
[if 조건식]] |
표현식의 평가 결과는 반드시 한 개의 원소가 나와야 합니다.
[ x, y for x in seq1 for u in seq2 ] |
· 틀린 예 · 만약 두 개의 이상의 평가 결과가 나오면 튜플 등으로 감싸 주어야 합니다. |
[ (x, y) for x in seq1 for u in seq2 ] |
· 올바른 예 |
l = []
for 요소1 in 컬렉션1:
for 요소2 in 컬렉션2:
#...
for 요소N in 컬렉션N:
if 조건식:
l.append(표현식)
|
'Development > Python' 카테고리의 다른 글
조건문의 중첩 (0) | 2020.01.20 |
---|---|
numpy 배열 (0) | 2020.01.20 |
plt.subplot() (0) | 2020.01.20 |
바 차트(bar chart) (0) | 2020.01.19 |
아나콘다(conda) 통해 .py 실행 (0) | 2020.01.18 |