상세 컨텐츠

본문 제목

[파이썬(Python)] #6. list comprehension

python

by 빨간눈동자 2021. 8. 22. 00:09

본문

반응형

python list의 특이한점은 list안에 for문과 if문을 사용할 수 있다는 점이다. 아래와 같이 표현 가능하다. 

[식 for 변수 in 리스트]
list(식 for 변수 in 리스트)

간단한 예제를 살펴보자. 

# test.py
a = [ i*2 for i in range(10)]
print(a)

step 1.
    for i in range(10)  : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
step 2.
    i*2 for i in range(10) : 0, 2, 4, 6, 8, 10, 12, 14, 16, 18
step 3.
    a = [ i*2 for i in range(10)] : [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

 

if문 조건 사용하기 

위 표현식에 if문을 추가할 수 있다. 

# test.py
a = [ i*2 for i in range(10) if i%2 == 0 ]
print(a)

step 1.
    for i in range(10)  : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
step 2. 
    for i in range(10) if i%2 == 0 : 0, 2, 4, 6, 8
step 2.
    i*2 for i in range(10)  if i%2  : 0, 4, 8, 12, 16
step 3.
    a = [ i*2 for i in range(10)] : [0, 4, 8, 12, 16]

 

for문과 if문을 여러번 사용할 수도 있다.  아래와 같이 여러줄로 표현된 구구단 출력 프로그램을 list comprehension으로 표현하면 한줄로 표현가능하다. (결과는 동일)

# test.py
for i in range(2, 10):  # 2 ~ 9
    for j in range(1, 10):  # 1 ~ 9
        print(f'{i} x {j} = {i*j}')

# list comprehension
[print(f'{i} x {j} = {i*j}') for i in range(2, 10) for j in range(1, 10)]

...

반응형

관련글 더보기