rueki
day4-2. lambda 함수, 내장함수 본문
파이썬에서 가장 강력한 함수가 무엇이냐라고 하면 lambda 함수라고 할 수가 있다.
lambda를 이용해서 코드를 한 줄로 간략화 시킬 수 있기 때문이다.
람다함수의 정의에 대해 알아보자.
함수변수 = lambda 인자 : 명령
def printWord(m):
return 'Message ->' + m
print(printWord('오늘도 좋은하루'))
f1 = lambda x : 'Message ->' + x
print(f1('좋은 하루 되세요'))
첫 번째 함수는 이전시간에 익힌 def 사용자 정의함수를 통해서 만든 것이고
두 번째 함수는 lambda를 이용해서 만든 함수이다.
간단한 함수라서 길이는 짧지만 무엇이 더 간단해 보이는가?
lambda가 훨씬 코드의 길이를 줄일 수가 있다.
그리고 lambda는 일회성 성질을 가진 함수이기때문에 같은 내용으로 중복 사용이 불가능하다.
즉, 사용할 때마다 새로 만들어주어야한다는 특징이 있다.
이번에는 내장함수에 대해서 알아볼텐데, 내장함수는 import를 통해서 별도로 불러와야한다.
수많은 내장함수 및 라이브러리가 있지만 이번에는 datetime과 math에 대해서 알아보자.
datetime은 시간 및 날짜에 관한 함수로써 import datetime 을 통해 불러올 수가 있다.
import datetime
now = datetime.datetime.now()
print(now)
위와 같이 선언하면, 현재 시간을 받아올 수가 있다. 추가적으로 year, month, day, hour로 다양한 옵션들을 불러올 수 있다.
print('년도 :', now.year)
print('월 :', now.month)
print('날짜 :', now.day)
print('시간 :', now.hour)
print(f'오늘은 {now.year}년 {now.month}월 {now.day}일입니다.')
print(f'현재 시간은 {now.hour}시 {now.minute}분 입니다.')
print(f'현재 시간은 오후 {now.hour -12}시 {now.minute}분 입니다.')
그리고 math는 수학관련 내장함수로서 절대값의 abs, 최대값 max, 최소값 min 등의 함수가 있다.
#절대값 출력 : abs(숫자)
#최대값 리턴 : max(리스트/튜플/집합)
#최소값 리턴 : min(리스트/튜플/집합)
import math
num = -10
print(max(10,20))
print(f'{num}의 절대값은 {abs(num)}이다.')
numList = [100,45,20,40,500]
print(f'최대값은 : {max(numList)}')
print(f'최소값은 : {min(numList)}')
#나누기, 나머지연산자
#divmod(n1,n2) -> 몫과 나머지 값을 구한다.
print(f'divmod(n1,n2) = {divmod(199,20)}, {type(divmod(199,20))}')
print(f'몫 = {divmod(199,20)[0]}')
print(f'나머지 = {divmod(199,20)[1]}')
추가적으로 중요한 개념인 enumerate에 대해서 알아보자. 이는 열거형의 구조를 가지며,
아래와 같은 구조와 특징을 가진다.
enumerate(리스트/튜플/문자열,인덱스 숫자)
인덱스 숫자로 구성된 리스트/ 튜플/문자열
=> enumerate 객체 생성
=> for..in 하나씩 아이템 출력 가능
=> 각각 튜플 아이템으로 생성(인덱스, 값)
흔히 딕셔너리 구조에서 많이 쓰이기도 한다.
listA = ['a','b','c']
enumResult = enumerate(listA, 5)
print(enumResult, type(enumResult))
for i in enumResult:
print(i)
#enumResult -> 딕셔너리 구조로 변경
#dict(enumerate(리스트/문자열/튜플, 인덱싱번호))
enumResult2 = enumerate(listA, 5)
print(dict(enumResult2))
#(5, 'a')
#(6, 'b')
#(7, 'c')
for 문을 통해 enumerate를 사용하여 값을 출력했다.
이해를 돕기 위해서 list = [1, 2, 3, 4, 5]가 있을 때 이 리스트를 열거하게 되면
0 1
1 2
2 3
3 4
4 5
이렇게 결과를 받아볼 수가 있다.
여기까지 기본적인 lambda의 구조, 내장함수에 대해 알아보는 시간이였다.
'python' 카테고리의 다른 글
day5-2. map 함수, reduce 함수 (0) | 2020.01.09 |
---|---|
day5-1. 기타 내장 함수 (0) | 2020.01.07 |
day4-1. 함수 (Function) (0) | 2020.01.06 |
day3-2. 반복문 (for , while) (0) | 2020.01.05 |
day3-1. if ~ else 문 (0) | 2020.01.05 |