리스트 내포 (List comprehension)
리스트 안에 for문을 포한하는
리스트 내포(List comprehension)을 사용할 수 있다.
a리스트의 각 항목에 3을 곱한 결과를 result 리스트에 담는 예제를
보도록하겠다.
>>> a = [1,2,3,4]
>>> result = []
>>> for num in a:
>>> result.append(num*3)
>>> print(result)
[3,6,9,12]
a리스트에는 1,2,3,4라는 숫자가 있고,
result라는 빈 리스트를 만들어줬다.
a리스트를 for문에 넣어서,
1,2,3,4가 차례대로 3과 곱해져
reulst리스트에 추가되는 함수이다.
위에서는 for문을 사용하기 위해서 2줄의 코드를 쳐야하는데
리스트 내포를 사용한다면, 단 1줄로 간단히 해결할 수 있다.
[표현식 for 항목 in 반복 가능 객체 ]
위와 같은 문법대로 사용하면 간단히 해결가능하다.
>>> a = [1,2,3,4]
>>> result = [num * 3 for num in a]
>>> print(result)
[3,6,9,12]
리스트 안에 표현식 num*3이 앞으로 왔고 뒤에 for문이 붙는것을 볼 수 있다.
좀 더 심화해서 for문과 if문을 함께 넣는 것도 가능하다.
[표현식 for 항목 in 반복 가능 객체 if 조건]
뒤에 if문만 붙여주면된다.
a = [1,2,3,4]
result = [num * 3 for num in a if num % 2 == 0 ]
이런식으로 짝수에만 3을 곱해서 result에 담을 수 있는 조건을 붙일 수 있다.
마지막으로
for문을 2개 이상 사용하는 것도 가능하다.
[표현식 for 항목1 in 반복 가능 객체1 if 조건1
for 항목1 in 반복 가능 객체1 if 조건2
. . .
for 항목1 in 반복 가능 객체1 if 조건n]
간단한 예를 들자면,
result = [x*y for x in range(2,10) for y in range(1,10)]
print(result)
2~9를 x라 두고, 1~9를 y라 해서 for문을 돌려
구구단의 모든 결과를 리스트에 담을 수 있다.
반응형
'Programming > Python' 카테고리의 다른 글
[Python] 클래스(Class) 1편 - 기본 개념 이해하기 / 사칙연산 계산기 클래스 만들기 (9) | 2022.03.04 |
---|---|
[Python] 점프 투 파이썬 연습문제 풀이 4장 (15) | 2022.03.03 |
[Python] 점프 투 파이썬 연습문제 풀이 3장 (10) | 2022.03.01 |
[Python] Numpy np.vstack VS np.hastack - 배열하기 (0) | 2022.01.20 |
[Python] Numpy argmax( ),argmin( ),np.where( ) - 최소, 최대, 조건 색인값 찾기 (0) | 2022.01.20 |
댓글