문제
다음 Python 코드의 실행 결과를 쓰시오.
Pythondata = [('apple', 5), ('banana', 3), ('cherry', 8), ('date', 2)] result = [(name.capitalize(), qty // 2 + qty % 3) if qty > 4 else (name[:3].upper(), qty * 2) for name, qty in data] print(result)
정답
[('Apple', 4), ('BAN', 6), ('Cherry', 6), ('DAT', 4)]
[('Apple', 4), ('BAN', 6), ('Cherry', 6), ('DAT', 4)]
해설
리스트 컴프리헨션의 조건부 표현식을 각 요소별로 계산:
- apple(5): 5 > 4이므로 ('Apple', 5//2 + 5%3) = ('Apple', 2 + 2) = ('Apple', 4)
- banana(3): 3 ≤ 4이므로 ('BAN', 3 * 2) = ('BAN', 6)
- cherry(8): 8 > 4이므로 ('Cherry', 8//2 + 8%3) = ('Cherry', 4 + 2) = ('Cherry', 6)
- date(2): 2 ≤ 4이므로 ('DAT', 2 * 2) = ('DAT', 4) 따라서 최종 결과는 [('Apple', 4), ('BAN', 6), ('Cherry', 6), ('DAT', 4)]