Python/Python 중급

Python 파이썬 for문, if문 한 줄로 쓰기

독학코딩 2021. 12. 24. 18:58
반응형

안녕하세요 독학코딩입니다. 오늘은 파이썬 for문, if문 한 줄로 쓰는 방법에 대해서 배워보겠습니다. 알아두면 코드를 컴팩트하게 쓰기 좋은 방법이니 참고 삼아 보시면 좋습니다. 혹시 for문, if문에 대해서 자세히 모르시면 아래 글 확인해보시면 좋습니다. 

 

 

Python FOR 문

안녕하세요 독학코딩입니다. 오늘은 파이썬 for문에 대해서 배워보겠습니다. for는 ~을 위해라는 뜻으로 글자 그대로는 이해하기가 조금 어렵습니다. 일반적으로는 반복문이라고 하여 특정 행동

stcodelab.com

 

 

Python IF 문

안녕하세요 독학코딩입니다. 오늘은 파이썬 if 문에 대해서 배워보도록 하겠습니다. if 문은 말 그래도 "만약에 A라면 B를 실행한다"라는 형식의 조건문으로 특정 조건에 성립하면 특정 실행을 하

stcodelab.com

 

 

Python For문 : 1단 활용

list_a = []
for i in range(10):
    list_a.append(i)
print(list_a)

간단한 리스트를 만들거나 간단하게 append 같은걸 할 때 보통 위와 같이 많이 하실 겁니다. 보시다시피 4줄이나 차지하고 딱히 보기 좋은 코드는 아닌 거 같습니다. 위 코드는 아래와 같이 간단히 작성할 수 있습니다.

list_a = [i for i in range(10)]
print(list_a)

파이썬 리스트 [] 안에 for문 자체를 넣는 방법입니다. 더 복잡하게도 가능하지만 복잡한 for문의 경우는 풀어서 쓰는게 나중에 이해하기 좋은 거 같아 저는 간단한 경우에만 사용합니다. 근데 위와 같이 그냥 인트를 리스트에 어펜드 하는 정말 정말 간단한 예제의 경우는 아래와 같이도 가능하긴 합니다. 참고만 해주세요.

list_a = list(range(10))

 

 

Python For문 : 2단 활용

list_a = []
for i in range(4):
    for j in range(4):
        list_a.append(j)
print(list_a)

for문을 2중으로 사용하는 경우도 한 줄쓰기가 가능할까요?

list_a = [ j for i in range(4) for j in range(4)]
print(list_a)

네 가능합니다. 솔직히 어떤 활용이든 다 가능은 합니다만, 한 줄로 쓰는 게 항상 좋은 것만 아니라서 너무 복잡한 경우는 안 쓰는 걸 추천드립니다.

 

 

Python if 문 : 1단 활용

int_a = 5
if int_a > 3:
    print("over")
else:
    print("under")

위와 같은 if-else 문은 아래와 같이 작성 가능합니다.

print("over" if int_a > 3 else "under")

 

 

Python if 문 : 2단 활용

int_a = 2
if int_a > 3:
    print("over")
elif int_a == 2:
    print("same")
else:
    print("under")

elif 가 포함된 if문에서도 한줄 쓰기가 가능합니다.

print("over" if int_a > 3 else "same" if int_a == 2 else "under")

 

 

Python 한 줄 쓰기 : for문, if문 혼합

이번 단락이 이번 포스트를 작성한 이유 입니다. 간단한 for문와 if문 혼합일 때 여러 줄로 작성하는 건 여간 귀찮은 일이 아니니 알아두시면 좋습니다.

list_a = list(range(10))
list_b = []
for i in list_a:
    if i > 5:
        list_b.append(i)
print(list_b)

이런 식의 for문과 if문을 혼합하여 사용하는 경우 작성하시고 귀찮고 여러 줄을 차지해서 보기에도 상당히 싫은 경우가 많습니다. 이런 경우는 아래와 같이 작성 가능합니다.

list_b = [i for i in list_a if i > 5]
print(list_b)

아래는 혼합 사용의 예를 여러개 나열해보겠습니다.

list_b = [i if i > 5 else "under" for i in list_a]
print(list_b)

list_b = [j for j in range(4) if j > 1 for i in range(4) if i == 2]
print(list_b)

list_b = [i if i > 3 else "same" if i == 2 else "under" for i in list_a ]
print(list_b)

이렇게 여러가지 형태로 가능은 합니다만, 한 줄 쓰기가 너무 복잡해지면 오히려 이해하기가 어려워지니 간단한 경우에만 활용하시면 좋을 것 같습니다.

반응형