본문 바로가기

코딩관련/파이썬 문법

global, lambda

○ global

     - 변수는 지역변수와 전역변수로 나눌 수 있다.  지역 범위 내에서 전역 변수를 사용해야 할 경우 global 함수를 사용한다.

  1. 함수내에 지역 변수 없이 그대로 전역변수 호출 
  a = 7   # 전역 변수
  def test():
      print(a)  # 전역 변수의 값 출력(7)

  test()
  print(a)      # 전역 변수의 값 출력(7)

2. 함수내에 지역 변수 선언 후 출력 결과 확인
  a = 7  # 전역 변수
  def test():
   
  a = 5    # 지역 변수 선언
      print(a)  # 지역 변수의 값 출력(5)

  test()
  print(a)     # 전역 변수의 값 출력(7)

  3. 함수 내에서 전역 변수 값을 수정
  a = 7  # 전역 변수
  def test():
      global a # 전역 변수 호출
   
   a = 5    # 전역 변수 값 수정
      print(a)  # 수정된 변수의 값 출력(5)

  test()
  print(a)     # 전역 변수의 값 출력(5)

 

○ lambda

     - lambda는 이름 없는 함수이다.

  º 기본 형식
    def plus(a):
        return a+5
    print(plus(2))  # 7이 출력

 
º lambda 사용(lambda 매개변수: 식)
    plus = lambda a: a+5  # 람다는 익명 함수이므로 사용을 할려면 변수에 저장을 해야함.
    print(plus(2))  # 7이 출력

  º (lambda 매개변수: 식)(인수)
    print((lambda a: a+5)(2))  # 혹은 한번 쓸 경우 이런 식으로 써도됨
  
  º map함수를 이용한 lambda
    print(list(map(lambda a: a+2, [3,4,5])))  # [5,6,7] 출력

  º 조건문 사용
   - lambda 매개변수들: 식1 if 조건식 else 식2
     a = [1,2,3,4,5,6,7,8,9]
     print(list(map(lambda x : str(x) if x%3==0 else x, a)))
     # [1, 2, '3', 4, 5, '6', 7, 8, '9'] 출력
     # lambda에서 if를 쓰면 반드시 else를 써야한다. 그러지 않으면 오류 발생.
   - lambda 매개변수들: 식1 if 조건식1 else 식2 if 조건식2 else 식3
     a = [1,2,3,4,5,6,7,8,9]
     print(list(map(lambda x : str(x) if x==1 else float(x) if x==2 else x+2, a)))
     # ['1', 2.0, 5, 6, 7, 8, 9, 10, 11] 출력
     # 람다에서는 elif가 되지 않으므로 if를 사용한다.

  º 리스트 두 개를 이용한 람다식
     a = [1,2,3]
     b = [4,5,6]
     print(list(map(lambda x, y : x + y, a, b)))
     # [5, 7, 9] 출력됨

'코딩관련 > 파이썬 문법' 카테고리의 다른 글

정규 표현식  (0) 2021.06.26
Join  (0) 2021.06.24
입출력  (0) 2021.05.31
튜플형, 사전형, 집합형  (0) 2021.05.30
리스트  (0) 2021.05.30