enumerate(iterable, start =0)
enumerate는 리스트나 반복 가능한 객체를 (index, value) 형태로 꺼내는 함수 : iterable(리스트, 튜플, 문자열, range 등)
fruits = ["사과", "바나나", "포도"]
for idx, fruit in enumerate(fruits):
print(idx, fruit)
결과 :
0 사과
1 바나나
2 포도
zip(*ITERABLES)
여러 리스트(반복 가능한 객체)를 묶어서 튜플로 반환
names = ["철수", "영희", "민수"]
scores = [90, 85, 100]
for name, score in zip(names, scores):
print(name, score)
결과 :
철수 90
영희 85
민수 100
map(function, iterable)
반복 가능한 객체의 모든 요소에 함수 적용
nums = ["1", "2", "3"]
nums_int = list(map(int, nums)) # 문자열을 정수로 변환
print(nums_int)
결과 :
[1, 2, 3]
filter(function, iterable)
반복 가능한 객체에서 조건을 만족하는 요소만 골라 객체로 반환
nums = [1, 2, 3, 4, 5]
even = list(filter(lambda x: x % 2 == 0, nums)) # 짝수만 추출
print(even)
결과 :
[2, 4]
map
— 리스트 모든 원소에 함수 적용nums = [1, 2, 3, 4, 5]
# 각 원소를 제곱
squares = list(map(lambda x: x**2, nums))
print(squares) # [1, 4, 9, 16, 25]
👉 lambda x: x**2
라는 함수를 따로 def
로 만들 필요 없이 한 줄에 정의
filter
— 조건에 맞는 원소만 걸러내기nums = [1, 2, 3, 4, 5, 6]
# 짝수만 추출
evens = list(filter(lambda x: x % 2 == 0, nums))
print(evens) # [2, 4, 6]
👉 lambda x: x % 2 == 0
은 조건 함수 (True/False 반환)
sorted
— 정렬 기준 지정words = ["banana", "apple", "cherry"]
# 문자열 길이 기준으로 정렬
sorted_words = sorted(words, key=lambda w: len(w))
print(sorted_words) # ['apple', 'banana', 'cherry']
👉 lambda w: len(w)
가 정렬의 기준 역할
max
/ min
— 기준을 주고 최대·최소 구하기students = [("철수", 85), ("영희", 92), ("민수", 78)]
# 점수가 가장 높은 학생
best = max(students, key=lambda s: s[1])
print(best) # ('영희', 92)
👉 lambda s: s[1]
→ 튜플에서 점수(두 번째 값) 기준
lambda
는 짧고 단순한 연산이 필요할 때 쓰면 코드가 간결해짐map
, filter
, sorted
, max
, min
같은 고차 함수와 자주 사용됨def
함수로 따로 정의하는 게 가독성에 좋음