본문 바로가기

컴퓨터공학/파이썬 입문

[노베이스, 취준생을 위한 파이썬] - 7강 lambda

반응형

본 강의 시리즈는 파이썬 입문 및 복습을 위한 강좌입니다. 모든 포스팅은 아래의 링크에서 확인가능합니다!


1강 - 변수와 자료형

2강 - 제어구조 ( if else 문)

3강 - 제어구조 ( for 문)

4강 - 제어구조 ( while 문)

5강 - 함수

6강 - 재귀함수

7강 - 람다 (lambda)

8강 - 문자열, 리스트

9강 - 튜플, 딕셔너리, 세트

10강 - 유용한 라이브러리

11강 - 클래스

12강 - 예외처리


어느덧 중반을 지나고 있습니다! 여기까지 오셨다면 너무 잘 따라오고 계십니다! 오늘은 lambda 함수에 대해 알아보겠습니다. 은근 써먹을곳이 많아서 꼭 소개해드리고 싶었어요! 일단 람다함수를 사용하는 이유는, 간결하게 코드를 짤 수 있고, 한두번만 사용하고 말 함수들에 대해서 불필요한 메모리 낭비를 방지할 수 있습니다. 그래서 어떻게 쓰냐?

 

lambda 매개변수: 반환값

 

이렇게 씁니다. 굉장히 간단하죠?? 

(lambda x: x+7)(1)
>>> 8

요런식으로 간단한 함수를 만들고 바로 사용이 가능합니다. 하지만 람다함수는 지역변수를 만들 수 없어요. 그래서 간단한 거에만 사용이 됩니다. 람다 함수를 주로 사용하는 것중에 하나가 우리가 예전에 다뤘던 map  함수에서 사용이 되는데요, 예제를 한번 봅시다. 

 

여기서처럼 map의 첫번째 인자로 int라는 함수가 들어가는데, 여기에 우리가 원하는 함수를 간단하게 넣어줄 수 있습니다. 예를 들어 input을 받아서 5를 더해 변수에 넣고싶다면, 

이런식으로 활용이 가능하겠죠! 

 

또 많이 사용되는 경우가 sorted 함수를 사용할때 인데, 먼저 sorted 함수가 뭔지 잠깐 보겠습니다. 

이렇게 순서대로 정렬을 해주는 내장함수인데요, sorted 함수는 옵션으로 key인자를 받아서 정렬 기준을 만들어 줄 수 있습니다. 

이렇게 이름이 짧은 순서대로 정렬하고 싶다면, lambda x: len(x) 로 각 요소의 길이를 key값에 넣어줌으로써 정렬을 수행할 수 있습니다. 람다 함수는 정말 자기가 사용하기 나름이어서, 오늘 연습문제는 그동안 배웠던 것을 써먹을 수 있는 것들로 준비했습니다!

 

연습문제

https://www.acmicpc.net/problem/15649

 

15649번: N과 M (1)

한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해

www.acmicpc.net

https://www.acmicpc.net/problem/1025

 

1025번: 제곱수 찾기

첫째 줄에 N, M이 주어진다. 둘째 줄부터 N개의 줄에는 표에 적힌 숫자가 1번 행부터 N번 행까지 순서대로 한 줄에 한 행씩 주어진다. 한 행에 적힌 숫자는 1번 열부터 M번 열까지 순서대로 주어지

www.acmicpc.net

https://www.acmicpc.net/problem/1153

 

1153번: 네 개의 소수

임의의 자연수가 주어지면, 이를 네 개의 소수의 합으로 분해하는 프로그램을 작성하시오. 예를 들어 38 = 5 + 7 + 13 + 13이 된다.

www.acmicpc.net

 

반응형