Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

DOing

[Python] 내장함수, itertools, collections, math 라이브러리 본문

Python

[Python] 내장함수, itertools, collections, math 라이브러리

mangdo 2021. 5. 19. 13:58

파이썬은 여러가지 표준 라이브러리들을 제공하고 있는데

그중 대표적인 라이브러리와 제공되는 함수들에 대해 알아보겠다.


💡 내장함수

: 기본 입출력함수부터 정렬함수까지 기본적인 함수들을 제공해준다.

a=[1,2,3]

result = sum(a)
min_result = min(a)
max_result = max(a)

# eval() : 실제 수식을 계산해준다.
result = eval("3*5+7")

# sorted() : 각 원소를 정렬
result = sorted(a) #오름차순
result = sorted(a, reverse=True) #내림차순

# sorted() with key
# 람다 형태로 넣어주는 경우가 많다
array = [('홍길동', 35), ('이순신', 75), ('아무개', 50)]
result = sorted(array, key=lambda x:x[1], reverse=True)

💡 itertools

: 파이썬에서 반복되는 형태의 데이터를 처리하기 위한 기능을 제공

: 특히 순열과 조합 라이브러리는 코딩테스트에서 자주 사용된다

 

Q. 모든 경우의 수를 고려해야 할때 무엇을 사용할 수 있을까?

- 순열 : 서로 다른 n개에서 서로 다른 r개를 선택하여 일렬로 나열

- 조합 : 서로 다른 n개에서 서로 다른 r개를 순서에 상관없이 선택

{'a', 'b', 'c'}

 

- 순열 : 'abc', 'acb', 'bac', 'bca', 'cab', 'cba'

- 조합 : 'abc'

[ 순열 ]

from itertools import permutations

data = ['a','b','c']

result = list(permutation(data, 3)) # 3개를 나열하는 모든 순열

[ 조합 ]

from itertools import combinations

data = ['a','b','c']

result = list(combinations(data, 2)) # 2개를 뽑는 모든 조합

 

💡 collections

: 덱, 카운터 등의 유용한 자료구조를 포함한다.

 

[카운터]

: 등장횟수를 세는 기능 제공

리스트와 같은 반복가능한(iterable)객체가 주어졌을 때 내부의 원소가 몇번 씩 등장했는지 확인한다.

from collections import Counter

counter = Counter(['red', 'blue', 'red', 'green', 'blue', 'blue'])

print(counter['blue']) #'blue'가 등장한 횟수 3
print(counter['green']) # 'grren'이 등장한 횟수 1
print(dict(counter)) # 사전 자료형으로 반환 {'red':2, 'blue':3}

💡 math

: 수학기능을 제공한다

: 팩토리얼, 제곱근, 최대공약수(gcd), 삼각함수, 파이상수 제공

 

[최대 공약수, 최소 공배수]

import math

# 최대 공약수
print(math.gcd(21, 14))

# 최소공약수
def lcm(a,b):
	return a * b // math.gcd(a, b)
print(lcm(21, 14))