python for if-else 한줄에 작성하기
[for 한줄로 작성하기]
1) for문 한 개 있을 때
list1 = [1,2,3,4,5]
list2 = []
for i in list1 :
list2.append(i*2)
print(list2)
# 위 식을 한 줄로 줄이면 다음과 같다
[i*2 for i in list1] # [2,4,6,8,10]
2) 이중 for문 한줄로 작성하기
list1 = [1,2,3]
# 1번 for
for i in list1 :
# 2번 for
for j in list1 :
print(i*j,end=" ") # 1 2 3 2 4 6 3 6 9
이중 for문을 한 줄로 작성할 때는 바깥쪽의 for 문을 맨 마지막에 작성하고, 내포된 for문을 앞부분에 작성해야 한다.
[i*j for j in list1 for i in list1]
# 2번 for 문 # 1번 for문
# [1, 2, 3, 2, 4, 6, 3, 6, 9]
If - else 한줄로 작성하기 (elif XX)
1) if else 가 함께 쓰일 경우, if 문을 for문 보다 앞에 적는다
list1 = [1,2,3]
[i*j if i> 1 else 0 for j in list1 for i in list1]
# [0, 2, 3, 0, 4, 6, 0, 6, 9]
2) 만약 else 가 없다면, if 문은 맨 마지막 위치에 적는다
[i*j for j in list1 for i in list1 if i> 1]
# else가 없을 경우
# [2, 3, 4, 6, 6, 9]
Comments