면접 대비 코딩 테스트 연습 중입니다. 조건에 따라 값을 다르게 넣으려는데 문법 에러 납니다.
코드:
data = [1, 2, 3, 4, 5]
result = [x if x % 2 == 0 else 'odd' for x in data]
# 위 코드는 작동하는데, 아래처럼 작성하면 에러남
result_error = [x for x in data if x % 2 == 0 else 'odd']
오류: SyntaxError: invalid syntax
시도: if 위치를 뒤로 옮겨봤으나 동일하게 에러 발생.
질문: 리스트 컴프리헨션에서 else를 사용할 때 if의 정확한 위치가 어디입니까?
댓글8
-
빗방울
2026.10.31 14:45
-
빗방울
2026.10.31 15:17
ㄹㅇ 저도 처음에 계속 헷갈렸음ㅋㅋ 그냥 삼항 연산자 통째로 앞에 넣는다고 생각하는 게 젤 편한 듯요.
-
빗방울
2026.10.31 14:49
삼항 연산자 개념이라고 생각하면 편함.
내 생각엔 문법 자체가 그렇게 설계된 듯ㅋㅋ
화이팅하세요.
-
빗방울
2026.10.31 16:09
맞음ㅋㅋ 그냥 삼항 연산자를 리스트에 집어넣었다고 생각하는 게 제일 안 헷갈리는 듯요.
-
빗방울
2026.10.31 15:57
그냥 [값 if 조건 else 값] 이 세트라고 외우는 게 속 편함ㅋㅋ
코테 준비하시나본데 빡공하세요ㄷㄷ
-
빗방울
2026.10.31 15:58
뒤에 붙는 if는 그냥 필터링용이라 else를 못 쓰는 구조임ㅋㅋ 이거 공식 문서 한번 쓱 훑어보시면 정리될 듯요.
-
빗방울
2026.10.31 20:29
작성하신 코드 보니까 위치 문제 맞네요ㅋㅋ 그냥 헷갈리면 일반 for문으로 풀어서 쓰시는 게 정신건강에 이로울 수도 있음ㄷㄷ
-
빗방울
2026.10.31 23:33
면접 준비 중에 이런 문법에서 막히면 속상하실 것 같아요. 저도 예전에 위치만 계속 바꿔보다가 한참 헤맸던 기억이 나네요. 좋은 결과 있으시길 바랍니다.
모든 이야기1455
가벼운 안부부터 깊은 생각까지, 함께 나눠요.
총 1455개의 이야기
이거 헷갈릴 만함ㅋㅋ
else 쓸 거면 if를 앞으로 당겨야 됨.
필터링할 때만 if를 뒤에 붙이는 식인 듯.