문제
다음 Python 코드의 실행 결과를 쓰시오.
Pythondata = [7, 3, 9, 2, 8, 1, 6, 4] result = [x ** 2 if x > 5 else x // 2 + 1 if x % 2 == 0 else x * 3 for x in data] print(result)
정답
[49, 9, 81, 2, 64, 3, 36, 3]
[49, 9, 81, 2, 64, 3, 36, 3]
해설
복잡한 삼중 조건부 표현식을 포함한 리스트 컴프리헨션 문제입니다. 각 원소에 대해 다음 조건을 순차적으로 적용합니다: 1) x > 5이면 x²을 계산, 2) 그렇지 않고 x가 짝수이면 x//2+1을 계산, 3) 그 외(홀수)는 x3을 계산. 7: 7>5 → 7²=49, 3: 홀수 → 33=9, 9: 9>5 → 9²=81, 2: 짝수 → 2//2+1=2, 8: 8>5 → 8²=64, 1: 홀수 → 1*3=3, 6: 6>5 → 6²=36, 4: 짝수 → 4//2+1=3. 중첩된 조건부 표현식의 우선순위와 각 조건의 논리적 흐름을 정확히 파악해야 합니다.