[Python] 함수를 매개변수로 사용하는 대표적인 표준함수 (map() 함수와 filter() 함수)
📓 map() 함수와 filter() 함수
함수를 매개변수로 사용하는 대표적인 표준 함수로 map() 함수와 filter() 함수가 있다.
✔ 파이썬이 표준으로 제공하는 함수를 ‘내장 함수’ 또는 ‘표준 함수’ 라고 부른다
✏️ map() 함수
map() 함수는 리스트의 요소를 함수에 넣고 리턴된 값으로 새로운 리스트를 구성해 주는 함수이다.
map(함수, 리스트)
📌 예제
def power(item):
return item * item
item_list = [1, 2, 3, 4, 5]
output_map = map(power, item_list)
print("# map() 함수의 실행 결과")
print("map(power, item_list): ", output_map)
print("map(power, item_list): ", list(output_map))
print()
# map() 함수의 실행 결과
# map(power, item_list): <map object at 0x7f2c7cd78a60>
# map(power, item_list): [1, 4, 9, 16, 25]
✏️ filter() 함수
filter 함수는 리스트의 요소를 함수에 넣고 리턴된 값이 True인 것으로, 새로운 리스트를 구성해주는 함수이다.
filter(함수, 리스트)
📌 예제
def under_3(item):
return item < 3
item_list = [1, 2, 3, 4, 5]
output_filter = filter(under_3, item_list)
print("#filter() 함수의 실행 결과")
print("filter(under_3, item_list): ", output_filter)
print("filter(under_3, item_list): ", list(output_filter))
# filter() 함수의 실행 결과
# filter(under_3, item_list): <filter object at 0x7fd1db33ba60>
# filter(under_3, item_list): [1, 2]
🤗 결론
map() 함수와 filter 함수는 모두 첫 번째 매개변수에 함수, 두 번째 매개변수에 리스트를 넣는다.
map() 함수 예제를 살펴보면,
첫번째 매개변수에는 값을 제곱해 주는 power() 함수를 넣었고
두번째 매개변수에는 [1, 2, 3, 4, 5]라는 리스트를 넣었다.
그리고 그 결과로 [1, 2, 3, 4, 5] 내부의 요소에 power() 함수가 적용된
[1, 4, 9, 16, 25]를 얻었다.
filter() 함수 예제를 살펴보면,
첫 번째 매개변수에는 3 미만의 값을 판정해주는 under_3() 함수를 넣었고
두 번째 매개변수에는 [1, 2, 3, 4, 5]라는 리스트를 넣었다.
그리고 그 결과류 [1, 2, 3, 4, 5] 내부의 요소 중 3보다 작은 요소들로 구성된
[1, 2]를 얻었다.
이를 print() 로 출력해보면
<map object>와 <filter object>가 나오는데, 이를 제너레이터(generator)라고 부른다.
여기에 list() 함수를 적용해서, 강제로 리스트 자료형으로 변환할 수 있다.
🤔 참고
알고리즘 테스트를 준비할 때,
임의의 개수의 정수를 한 줄에 입력 받아 리스트에 저장할 때가 있다.
이때 자주 사용하는 코드를 자세히 들여다보자.
data = list(map(int, input()))
1. int()는 파이썬의 내장함수로, 숫자나 문자열을 정수형(Integer)로 변환할 수 있다.
https://codetorial.net/tips_and_examples/int_function.html
a = int('123')
print(a)
# 123
2. input()은 파이썬의 내장함수로, 사용자의 입력을 받을 수 있다.
number = input("숫자를 입력하세요: ")
3. split()는 파이썬의 내장함수로, 첫번째 인자로 구분자 문자열을 넣어 문자열을 리스트로 돌려받을 수 있다.
https://docs.python.org/ko/3/library/stdtypes.html?highlight=split#str.split
'1,2,3'.split(',')
# ['1', '2', '3']
또는
'1 2 3'.split()
# ['1', '2', '3']
와 같이 사용할 수 있다.
즉, 1, 2, 3 내용을 알고 있는 상태로 다시 한 번 아래 코드를 살펴보면,
data = list(map(int, input()))
유저가 입력한 값을(input())
공백 기준으로 구분하여 리스트로 돌려받아(input().split())
map() 함수에 이를 두번째 인자로 넣고, 첫번째 인자로 int() 함수를 넣으면
<map object>가 나오는데, 이를 리스트 자료형으로 강제변환한 결과를 data 에 넣는 것…!
이라는 결론에 이르를 수 있다.
이 정보를 알고 있다면, 아래 문서가 좀 더 이해가 잘 될 듯…오늘도 배워갑니다😎
[Python] 값을 입력 받아 리스트에 넣기 (input() 함수와 sys.stdin.readline() 함수)
✏️ input()사용자가 입력한 값을 읽어들이는 함수list1 = []s = input('입력하세요: ')list1.append(s)print(list1)# 입력하세요: A# ['A'] 📌 원하는 자료형 받기만약에 문자열이 아닌 다른 자료형을 입력 받고
progfrog.tistory.com