728x90
반응형
result = num_list(7)
print(result)
문제 1.
참조
두가지의 풀이 방법이 생성되어 풀이1-1, 풀이1-2 로 전달 드립니다.
풀이 1 -1 . num_list의 동작 방식
설명:
- 리스트 컴프리헨션을 사용하여 2부터 num-1까지의 숫자를 생성합니다.
- range(2, num)은 2부터 num-1까지의 숫자 범위를 생성합니다.
- if i % 2 == 0 조건으로 짝수만 리스트에 포함시킵니다.
동작 과정:
- range(2, num)에서 숫자를 하나씩 가져옵니다.
- 각 숫자에 대해 i % 2 == 0 조건을 확인합니다.
- 조건이 참이면 리스트에 추가합니다.
- 조건이 거짓이면 제외합니다.
코드
def num_list(num):
return [i for i in range(2, num) if i % 2 == 0]
result = num_list(7)
print(result)
결과 출력
[2, 4, 6]
단점:
- if 조건을 매번 평가해야 하므로 상대적으로 비효율적입니다.
- 필요 없는 홀수를 생성하고 필터링하는 작업이 추가됩니다.
예시:
num_list(10) # 출력: [2, 4, 6, 8]
풀이 1-2 . get_even의 동작 방식
설명:
- *range(start, stop, step)*을 사용하여 짝수를 직접 생성합니다.
- range(2, num + 1, 2)는 2부터 num까지의 숫자를 2씩 건너뛰며 생성합니다.
동작 과정:
- range(2, num + 1, 2)는 처음부터 짝수만 생성합니다.
- 생성된 짝수를 list()로 변환하여 반환합니다.
코드
def get_even(num):
return list(range(2, num + 1, 2))
장점:
- 필요 없는 홀수를 생성하지 않으므로 더 효율적입니다.
- 코드가 더 간결하고 읽기 쉽습니다.
예시:
get_even(10) # 출력: [2, 4, 6, 8, 10]
주요 차이점 비교
특징 num_list get_even
짝수 필터링 방식 | 모든 숫자를 생성한 뒤 i % 2 == 0으로 필터링 | 짝수만 생성 |
효율성 | 불필요한 홀수를 생성하고 조건을 평가하므로 비효율적 | 처음부터 짝수만 생성하므로 더 효율적 |
코드 가독성 | 조건문을 포함해 약간 복잡 | 간단하고 직관적 |
생성 범위 | 2부터 num-1까지 | 2부터 num까지 (마지막 값 포함하려면 +1 필요) |
결론
- 효율성과 간결함이 중요한 경우: get_even을 사용하세요.
- 학습 목적으로 조건문 활용을 연습하거나, 더 복잡한 필터링이 필요한 경우: num_list처럼 리스트 컴프리헨션을 사용하세요.
728x90
반응형
'Python > 실습' 카테고리의 다른 글
130. [Python] [Linear Regression] : 예측 모델 실습( 자동차 연비) (0) | 2025.01.28 |
---|---|
98. [Python] 프로그래밍 실습 : Loop ( 반복문 ) (0) | 2025.01.20 |
96. [Python] 프로그래밍 실습 : COMPARISON OPERATORS (비교연산자) (0) | 2025.01.20 |
93. [Python] 프로그래밍 실습 : LISTS(리스트) (0) | 2025.01.19 |
92. [Python] 프로그래밍 실습 : STRINGS(문자열) (0) | 2025.01.19 |