본문 바로가기
Python 연습/1. Python 설치와 실습 - 아나콘다

Q_01_15. 내장함수에서 반복관련 함수에 는 어떤 것이 있는가? - range, map, zip, filter

by Python통컨 2025. 3. 20.

파이썬에서 제공하는 내장 함수 중에는 반복(iteration)과 관련된 함수들이 있습니다. 이 함수들은 반복 작업을 더 간단하고 효율적으로 수행할 수 있게 도와줍니다. 가장 많이 사용되는 반복 관련 내장 함수는 다음과 같습니다:

1. range()

range() 함수는 특정 범위의 숫자들을 생성하는 함수로, 반복문에서 많이 사용됩니다. 주로 for 문과 함께 사용되어 지정된 범위 내에서 반복을 수행합니다.

문법: range(start, stop, step)

start: 시작값 (생략 시 기본값은 0)
stop: 끝값 (이 값은 포함되지 않음)
step: 증가 또는 감소 값 (생략 시 기본값은 1)

예시:

for i in range(5):  # 0부터 4까지 반복
    print(i)

for i in range(1, 10, 2):  # 1부터 9까지 2씩 증가
    print(i)

2. map()

map() 함수는 반복 가능한(iterable) 객체의 각 요소에 대해 지정된 함수를 적용하여 새로운 값을 반환하는 함수입니다. 주로 리스트, 튜플 등에 대해 사용됩니다.

문법: map(function, iterable)

function: 각 요소에 적용할 함수
iterable: 반복 가능한 객체 (리스트, 튜플 등)

예시:

def square(x):
    return x * 2

numbers = [1, 2, 3, 4]
result = map(square, numbers)
print(list(result))  # 출력: [2, 4, 6, 8]

3. zip()

 

zip() 함수는 여러 개의 반복 가능한 객체를 동시에 묶어서 튜플 형태로 반환합니다. 각 반복 가능한 객체에서 동일한 인덱스에 있는 값들을 묶어줍니다.

문법: zip(*iterables)

iterables: 하나 이상의 반복 가능한 객체

예시:

names = ['Alice', 'Bob', 'Charlie']
scores = [90, 80, 95]

result = zip(names, scores)
print(list(result))  # 출력: [('Alice', 90), ('Bob', 80), ('Charlie', 95)]

4. filter()

filter() 함수는 반복 가능한 객체의 각 요소에 대해 주어진 조건을 검사하고, 참인 요소만 걸러서 반환하는 함수입니다.

문법: filter(function, iterable)

function: 각 요소에 적용할 조건을 나타내는 함수
iterable: 반복 가능한 객체 (리스트, 튜플 등)

예시:

def is_even(x):
    return x % 2 == 0

numbers = [1, 2, 3, 4, 5, 6]
result = filter(is_even, numbers)
print(list(result))  # 출력: [2, 4, 6]

5. enumerate()

enumerate() 함수는 반복 가능한 객체를 반복하면서 인덱스와 요소를 동시에 반환합니다. for 루프에서 자주 사용됩니다.

문법: enumerate(iterable, start=0)

iterable: 반복 가능한 객체
start: 인덱스 시작값 (기본값은 0)

예시:

 
names = ['Alice', 'Bob', 'Charlie']

for index, name in enumerate(names, start=1):
    print(f"{index}: {name}")
# 출력:
# 1: Alice
# 2: Bob
# 3: Charlie

6. iter()

iter() 함수는 반복 가능한 객체를 이터레이터로 변환합니다. 이터레이터는 next() 함수를 사용해 한 번에 하나의 요소를 반환할 수 있습니다.

문법: iter(object)

예시:

numbers = [1, 2, 3, 4]
iterator = iter(numbers)

print(next(iterator))  # 출력: 1
print(next(iterator))  # 출력: 2

7. next()

next() 함수는 이터레이터에서 다음 요소를 반환하는 함수입니다. 이터레이터가 끝나면 StopIteration 예외가 발생합니다.

문법: next(iterator, default)

iterator: 이터레이터 객체
default: 이터레이터가 끝났을 때 반환할 기본값 (선택적)

예시:

numbers = [1, 2, 3]
iterator = iter(numbers)

print(next(iterator))  # 출력: 1
print(next(iterator))  # 출력: 2
print(next(iterator))  # 출력: 3
# print(next(iterator))  # 예외: StopIteration 발생

8. all() 및 any()

 

all(): 주어진 반복 가능한 객체의 모든 요소가 참이면 True를 반환, 하나라도 거짓이면 False를 반환

any(): 주어진 반복 가능한 객체의 요소 중 하나라도 참이면 True를 반환, 모든 요소가 거짓이면 False를 반환

문법:

all(iterable)
any(iterable)

예시:

numbers = [1, 2, 3, 4]

# 모든 값이 참인지 확인
print(all(numbers))  # 출력: True

# 하나라도 참인지 확인
print(any(numbers))  # 출력: True

# 0이 포함된 경우
numbers_with_zero = [0, 1, 2, 3]
print(all(numbers_with_zero))  # 출력: False
print(any(numbers_with_zero))  # 출력: True

이러한 반복 관련 내장 함수들은 파이썬에서 효율적으로 반복 작업을 처리하는 데 매우 유용하며, 복잡한 로직을 단순화시킬 수 있습니다.