LiJell's 성장기

04.python_def_lambda_map 본문

Bigdata/파이썬_Python

04.python_def_lambda_map

All_is_LiJell 2021. 12. 15. 17:39
반응형

modified on Wed Dec 29

\#-*- coding: utf-8 -*- """ Created on Wed Dec 15 15:23:14 2021

@author: hanju """

사용자 정의 함수

사용자가 정희하는 함수의 형태

input과 output 관계를 내부에 정의

def, lamda(축약형)


함수 정의

  • f(x) = x+1

1. def 방식

\# def 함수이름(인수1, 인수2, 인수3): \# 함수 본문 \# return 반환할 객체

  • 숫자를 넣어서 곱하기 10한 값을 반환
def f_mul(x):
  a1=x*10
  return a1

f_mul(100)
1000
  • 두 숫자(두개의 인자를 함수에 넣는구나) 넣어서 두 숫자의 곱 반환
def f_2_mul(x,y):
  a2=x*y
  return a2  

print(f_2_mul(2,10))
20
  • 인수에 default 값
def f_d(x=1,y):
  return(x*y)
SyntaxError: non-default argument follows default argument

\# 첫번째 인수에 기본값을 정의하면, 뒤에 나오는 인수도 기본값 정의해야함

**따라서**

  • default 값을 갖는 인수를 맨 뒤에 배치
def f_d(x=1,y=1):
  return(x*y)

print(f_d())
1

2. lambda 축양형 (1회용)

  • 비교적 단순한 연산 및 리턴시 사용

예제 : 숫자를 넣을거에요. 여기에 10을 곱한 값을 리턴하세요.

f1 = lambda x: x*10
f1(5)
50

문제

  • 3개 숫자를 전달받아 첫 번째와 두번째 합에 세번 째 숫자의 곱 리턴
f2 = lambda x,y,z: (x+y)*z
f2(2,5,3)
21

3. map 함수

f1=lambda x: x*10
f1(4)

l1 = [1,2,5,10]
f1(l1)
# 리스트를 넣으면 리스트가 10번 반복

# 1) for 문 처리
l2 = []
for i in l1:
  l2.append(i+10)

print(l2)
[11, 12, 15, 20]

4. 사용자 정의 함수 + map

map(func,    # 적용할 함수
  iterable)  # 추가할 인수 
f1 = lambda x: x*10
f1(4)
40
map(f1, l1)
<map at 0x21f91a94790>
list(map(f1, l1))
[10, 20, 50, 100]

연습해볼까요?

  • 하나의 숫자를 전달받을거에요. 10보다 크면 3을 곱하고, 작거나 같으면
  • 2를 곱한 결과를 리턴하세요
l2= [3,5,7,10]
def f(x):
  if x>10:
    v1=x*3
  else:
    v1=x*2
  return v1

f(11)
33
f(5)
10
f(l2) # error!
TypeError: '>' not supported between instances of 'list' and 'int'

list(map(f, l2))
[6, 10, 14, 20]
반응형

'Bigdata > 파이썬_Python' 카테고리의 다른 글

06.python_str_method  (0) 2021.12.20
05.python_numpy  (0) 2021.12.15
03.python_conditional_statements_loop  (0) 2021.12.15
02.python_02_함수와 메서드  (0) 2021.12.15
01.python_01_변수와 리스트  (0) 2021.12.14
Comments