[데이터분석] 고급 파이썬

유가연·2022년 2월 2일
0

TIL

목록 보기
10/32

lambda

함수를 생성할 때 사용하는 예약어로 def와 동일한 역할을 함. 자주 사용하지 않거나 복잡하지 않을 때, 한 줄로 간결하게 표현하고 싶을 때 사용함.

lambda 매개변수1, 매개변수2, ... : 매개변수를 사용한 표현식
# def를 사용했을 때
def get_eng_title(row) :
  split = row.split(',')
  return split[1]
  
sorted(movies, key = get_eng_title)

# lambda를 사용했을 때
get_eng_title = lambda row : row.split(',')[1]

sorted(movies, key = get_eng_title)

# 더 간단히 하자면?

sorted(movies, key = lambda row : row.split(',')[1])

assert()

debug용 명령어. True 혹은 False로 반환되며 두 값이 같으면 통과, 아니면 에러를 발생시켜서 테스트할 때 많이 사용하는 파이썬의 기본 함수.

itemgetter()

데이터의 모음을 받아 n번째 원소를 리턴하는 함수.

import operator

...
sorted_list = list(sorted(list1, key = operator.itemgetter(0)))
# 아이템의 0번째 인자를 가져와 정렬할 때 key로 사용하겠다는 뜻

map()

리스트 혹은 데이터의 집합에서 원소들에게 동일한 함수를 적용하는 함수.

map의 기본 구조

map(함수, 함수를 적용할 리스트)

하지만 map을 사용했을 경우 리스트가 아닌 map이라는 타입을 가지게 됨. 사용자가 원소를 꺼내갈 때 연산을 해줌. 따라서 필요없는 연산은 하지 않아 속도가 빠르고 내용을 하나하나 확인하고 싶을 때는 list()를 이용하면 됨. list()로 변환하기 전에도 인덱싱으로 값을 꺼낸다면 그 때는 잘 꺼내짐.

# 서로 유사한 연산
[func(x) for x in data]
map(func, data)

filter()

map과 달리 값을 계산해서 값이 True일 때의 값만 가져옴. filter도 map과 비슷하게 filter타입을 가짐. 모든 원소를 확인하고 싶다면 list()로 변환해줘야 함.

profile
유가연

0개의 댓글