💻 프로그래밍 언어/Python

[Python] 함수를 매개변수로 사용하는 대표적인 표준함수 (map() 함수와 filter() 함수)

케로⸝⸝◜࿀◝ ⸝⸝ 2024. 6. 9. 22:51

📓 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()은 파이썬의 내장함수로, 사용자의 입력을 받을 수 있다.

https://wikidocs.net/25

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

 

반응형