Python
[Python] 유용한 함수 정리
PONI
2023. 7. 18. 17:00
반응형

Sum
Iterable한 객체들(tuple, list)의 합을 구할 때 사용
sum([1,2,3]) #6
sum((1,2,3)) #6
Random
import random
random.random() #0~1 사이의 난수 만들기
random.randint(0,100) #0~100 사이에서 랜덤으로 정수를 뽑는다.
random.randrange(0,7) #0~6사이에서 랜덤으로 정수를 뽑는다 (0에서 7미만이라고 보면 됨)
random.choice([1,2,3]) #array 사이에서 랜덤으로 값을 뽑는다.
Functools
Reduce
.reduce(function, 배열, 기본값) 으로 사용
functools.reduce(lambda x,y : x+y, [1,2,3,4,5], 0)
#15 반환
#x에는 새로운 요소, y에는 sum값이 들어감
Sorted Cmp
python 3버전에서는 sorted 안에 cmp가 없이 key만 있음
key는 함수에 인자 값이 하나라서 비교하는 구문을 넣을 수 없음
from functools import cmp_to_key 로 불러와 사용
from functools import cmp_to_key
sorted(a, key=cmp_to_key(lambda x,y : x-y))
Itertools
반복과 관련된 빌트인 모듈로 대표적으로 combination, permutation, product가 있음
from itertools import product
arr1 = [1,2,3]
arr2 = ["12","34","56"]
arr3 = [[1,2],[3,4],[5,6]]
list(product(*arr1)) #[1,2,3]
list(product(*arr2)) #[1,3,5],[1,3,6],[1,4,5],[1,4,6],[2,3,5], ...
from itertools import combination
arr1 = [1,2,3]
combination(arr1, 2) # 2개씩 묶어주는 조합을 반환 [1,2], [2,3], [1,3]
from itertools import permutation
arr1 = [1,2,3,4,5]
permutation(arr1, 2) # 2개씩 묶어주는 조합을 반환 [1,2], [1,3], [2,1], [2,3], [3,1], [3,2]
Collections
파이썬 3.7 이하의 dictionary는 key의 순서를 보장하지 않았음. 안전하게 collections의 orderedDict 를 사용해서 나열하는 걸 추천
데코레이터
데코레이터는 함수를 변경하지 않고도 함수의 실행을 컨트롤 할 수 있게 도와주는 친구임. 함수를 감싸는 형태로 구현되어 있으며 @를 사용해서 구현
def trace(func): # 호출할 함수를 매개변수로 받음
def wrapper():
print(func.__name__, '함수 시작') # __name__으로 함수 이름 출력
func() # 매개변수로 받은 함수를 호출
print(func.__name__, '함수 끝')
return wrapper # wrapper 함수 반환
@trace # @데코레이터
def hello():
print('hello')
@trace # @데코레이터
def world():
print('world')
hello() # 함수를 그대로 호출
world() # 함수를 그대로 호출
any, all
any([1,1,0]) # 1 반환
all([1,1,0]) # 0 반환
any는 or 연산자와 비슷해서 인자중 하나라도 True라면 True를 반환
반면 all은 and 연산자와 비슷해서 인자 모두가 True여야 True를 반한
🔗참조
https://dojang.io/mod/page/view.php?id=2427
반응형