이 글에서는 주어진 문제 상황을 해결하기 위한 풀이 방법과 접근 방식을 알아보겠습니다.
문제 정의
리스트(iterable)가 하나 주어졌을 때, 그 안에 포함된 모든 음수를 찾아 출력해야 합니다.
이 문제는 다양한 방식으로 해결할 수 있는데, 여기서는 가장 많이 사용되는 세 가지 접근 방법을 소개합니다.
방법 1 – 향상된 for 루프 사용
가장 기본적이고 직관적인 방법입니다. 리스트의 각 요소를 순회하면서 조건문으로 음수 여부를 검사하고, 음수일 경우 화면에 출력합니다.
예제 코드
list1 = [-11,23,-45,23,-64,-22,-11,24]
# 반복 처리
for num in list1:
# 음수 여부 확인
if num < 0:
print(num, end = " ")실행 결과
-11 -45 -64 -22 -11
방법 2 – filter와 lambda 함수 사용
filter() 함수와 람다(lambda) 표현식을 조합하면 한 줄로 간결하게 음수만 걸러낼 수 있습니다. 함수형 프로그래밍 스타일을 선호하는 경우 특히 유용합니다.
예제 코드
list1 = [-11,23,-45,23,-64,-22,-11,24]
# 람다 표현식
no = list(filter(lambda x: (x < 0), list1))
print("리스트의 음수:", no)실행 결과
리스트의 음수: [-11, -45, -64, -22, -11]
방법 3 – 리스트 컴프리헨션(list comprehension) 사용
리스트 컴프리헨션은 파이썬다운 문법으로, 반복과 조건 필터링을 한 줄 안에서 동시에 처리할 수 있습니다. 가독성과 성능 면에서도 좋은 선택지입니다.
예제 코드
list1 = [-11,23,-45,23,-64,-22,-11,24]
# 리스트 컴프리헨션
nos = [num for num in list1 if num < 0]
print("리스트의 음수:", nos)실행 결과
리스트의 음수: [-11, -45, -64, -22, -11]
마무리
이 글에서는 입력 리스트에서 음수를 출력하는 세 가지 방법을 살펴보았습니다. 초보자라면 for 루프부터 시작해 로직을 익히고, 코드를 더 간결하게 만들고 싶다면 filter·lambda 또는 리스트 컴프리헨션을 활용해 보시기 바랍니다. 상황과 취향에 맞는 방법을 선택하면 됩니다.