Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- Spring #Java #Spring Boot
- Spring #Spring Boot #Java
- 7568
- java
- 9020
- 카카오클라우드스쿨
- 1110
- Java #코딩테스트
- node
- Java #백준 #코딩테스트
- 11053
- 15552
- 백준
- 코딩테스트
- Spring #Java #Spring Boot #싱글톤
- 알고리즘
- boj
- sequelize
- Java #오븐시계 #백준
- 카카오 클라우드 스쿨
- 파이썬
- 2447
- SpringTokenizer
- kakaocloud
- kakaocloudschool
- 24479
- 11054
- Spring #Java #Spring Boot #@BeforeEach #@AfterEach
- Spring
- python
Archives
- Today
- Total
YoungSoo
Python - 주요 내장 함수 및 라이브러리 본문
이번에는 파이썬의 주요 내장 함수와 라이브러리에 대해 알아보려고 한다.
최근에 알고리즘 공부를 하면서 주요 내장 함수들의 중요성에 대해 깨닫게 되었다.
내장 함수들을 사용하지 않더라도 구현이 가능하지만 사용한다면 정말 간편하게 사용할 수 있다.
하지만 직접 구현한 함수가 시간적인 측면에서 더 빠르다.
그렇지만 공부를 하기 위해서 알아두면 좋을 거 같다. 또한 파이썬의 라이브러리에는
더 많이 사용하기 좋은 라이브러리가 존재하며 어떤 상황에 어떤 식으로 사용해야 하는지 정도만 알아두면
좋을 거 같다.
주요 내장 함수
- sum
- result = sum([1,2,3,4,5]) # 15
- min
- result = min(7,3,5,2) # 2
- max
- result = max(7,3,5,2) # 7
- eval - 계산식을 계산 해줌
- result = eval("(3+5) * 7") # 56
- sorted
- result = sorted([9,1,8,5,4]) # [1,4,5,8,9]
- result = sorted([9,1,8,5,4], reverse=True) # [9,8,5,4,1]
- result = sorted([('홍길동', 35), ('이순신', 75), ('아무개', 50)], key=lambda x: x[1], reverse=True) # [('이순신', 75), ('아무개', 50), ('홍길동', 35)]
- sort - 내부 값이 바로 변경됨
- data = [9,1,8,5,4]
- data.sort() # [1,4,5,8,9]
라이브러리
itertools
- permutations - 순열
from itertools import permutations
result = list(permutations(data, 2)) # 2개 뽑는 모든 순열
# 순열은 순서가 중요하기 때문에 2개를 뽑아 순서대로 나열한다
[('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')]
- combinations
from itertools import combinations
result = list(combinations(data, 2)) # 2개 뽑는 모든 조합
# 2개
[('A', 'B'), ('A', 'C'), ('B', 'C')]
- product - 중복 포함 permutations
from itertools import product
result = list(product(data, repeat=2)) # 2개 뽑는 모든 순열 (중복 포함)
[('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'B'), ('B', 'C'), ('C', 'A'), ('C', 'B'), ('C', 'C')]
- combinations_with_replacement - 중복 포함 combinations
from itertools import combinations_with_replacement
result = list(combinations_with_replacement(data, repeat=2)) # 2개 뽑는 모든 조합 (중복 포함)
heapq
- 우선순위 큐 기능을 구현할 때
- 시간 복잡도: O(NlogN)
import heapq
heap.heappush(리스트, value) # 오름차순
heap.heappop(리스트)
heap.heappush(리스트, -value) # 내림차순
heap.heappop(리스트)
bisect
- left_value ≤ x ≤ right_value 원소의 개수 구하기
- 시간 복잡도: O(logN)
from bisect import bisect_left, bisect_right
def count_by_range(a, left_value, right_value):
right_index = bisect_right(a, right_value)
left_index = bisect_left(a, left_value)
return right_index - left_index
collections
- deque
- 인덱싱과 슬라이싱 불가
- 데이터 삽입, 삭제: O(1)
from collections import deque
data.appendleft(x)
data.append(x)
data.popleft()
data.pop()
- Counter
from collections import Counter
counter = Counter(['red', 'blue', 'red', 'green', 'blue', 'blue'])
counter['red'] # 2
counter['blue'] # 3
counter['green'] # 1
dict(counter) # {'red': 2, 'blue': 3, 'green': 1}
Math
- factorial
import math
math.factorial(5) # 120
- sqrt
import math
math.sqrt(7) # 2.645751...
- gcd
import math
math.gcd(21, 14) # 7
- pi & 자연상수 e
import math
math.pi # 3.141592...
math.e # 2.718281...
'BE > Python' 카테고리의 다른 글
Python - 예외처리 (0) | 2022.12.23 |
---|---|
Python - 패키지 (0) | 2022.12.21 |
Python - 모듈 (0) | 2022.12.19 |
Python - 클래스 (0) | 2022.12.17 |
Python - 파일 읽고 쓰기 (0) | 2022.12.16 |