Python 파이썬 for문, if문 한 줄로 쓰기
안녕하세요 독학코딩입니다. 오늘은 파이썬 for문, if문 한 줄로 쓰는 방법에 대해서 배워보겠습니다. 알아두면 코드를 컴팩트하게 쓰기 좋은 방법이니 참고 삼아 보시면 좋습니다. 혹시 for문, if문에 대해서 자세히 모르시면 아래 글 확인해보시면 좋습니다.
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)
이렇게 여러가지 형태로 가능은 합니다만, 한 줄 쓰기가 너무 복잡해지면 오히려 이해하기가 어려워지니 간단한 경우에만 활용하시면 좋을 것 같습니다.