주요 라이브러리 문법

2024. 2. 4. 18:49·기타

표준 라이브러리 : 특정한 프로그래밍 언어에서 자주 사용되는 표준 소스코드를 미리 구현해 놓은 라이브러리

  • 내장 함수
  • itertools
  • heapq
  • bisect
  • collections
  • math

■  내장 함수

별도의 import 명령어 없이 바로 사용할 수 있는 내장 함수

대표적인 내장 함수: input(), print(), sum(), max(), min(), eval(), sorted(), sort()

파이썬에서는 리스트의 원소로 리스트나 튜플이 존재할 때 특정한 기준에 따라 정렬을 수행할 수 있음

정렬 기준은 key 속성을 이용해 명시할 수 있음

 

원소를 튜플의 두 번째 원소(수)를 기준으로 내림차순으로 정렬하고자 하면 다음과 같이 사용 가능

result = sorted([('학생 1', 35), ('학생 2', 75), ('학생 3', 50)], key = lambda x:x[1], reverse = True)
print(result) # [('학생 2', 75), ('학생 3', 50), ('학생 1', 35)]

■  itertools

- 파이썬에서 반복되는 데이터를 처리하는 기능을 포함하는 라이브러리

- 코딩 테스트에서 가장 유용하게 사용할 수 있는 클래스는 permutations, combinations

 

permutations

리스트와 같은 itertools 객체에서 r개의 데이터를 뽑아 일렬로 나열하는 모든 경우(순열)를 계산

리스트 ['A', 'B', 'C']에서 3개를 뽑아 나열하는 모든 경우를 출력하는 예시

from itertools import permutations

data= ['A', 'B', 'C']
result = list(permutations(data, 3))
print(result) #[('A', 'B', 'C'), ('A', 'C', 'B'), ('B', 'A', 'C'), ('B', 'C', 'A'), ('C', 'A', 'B'), ('C', 'B', 'A')]

 

combinations

리스트와 같은 itertools 객체에서 r개의 데이터를 뽑아 순서를 고려하지 않고 나열하는 모든 경우(조합)를 계산

리스트 ['A', 'B', 'C']에서 2개를 뽑아 나열하는 모든 경우를 출력하는 예시

from itertools import combinations

data= ['A', 'B', 'C']
result = list(combinations(data, 2))
print(result) # [('A', 'B'), ('A', 'C'), ('B', 'C')]

 

product : 중복을 허용한 순열 구하기, 뽑고자 하는 데이터의 수를 repeat 속성값으로 넣어줘야 함

combinations_with_replacement : 중복을 허용한 조합 구하기 , 뽑고자 하는 데이터의 수를 repeat 속성값으로 넣어줘야 함


■  heapq

- 힙(Heap) 기능을 제공하는 라이브러리, 우선순위 큐 기능을 구현하기 위해 사용

- 힙에 원소를 삽입할 때는 heapq.heappush() 메서드를 이용하고, 원소를 꺼낼 때는 heapq.heappop() 메서드를 이용

- 파이썬에서는 최대 힙을 제공하지 않기 때문에, 원소의 부호를 임시로 변경하는 방식을 사용


■  bisect

- 이진 탐색(Binary Search) 기능을 제공하는 라이브러리, 정렬된 배열 내에서 특정한 원소를 찾아야 할 때 매우 효과적 

- bisect_left(a, x)란 정렬된 순서를 유지하면서 리스트 a에 데이터 x를 삽입할 가장 왼쪽 인덱스를 찾는 메서드

- count_by_range(a, left_value, right_value) 함수는 정렬된 리스트 내에서 값이 특정 범위에 속하는 원소의 개수를 구할 때 사용


■  collections

- collections 라이브러리의 기능 중에서 유용하게 사용되는 클래스는 deque와 Counter

 

deque

- 파이썬에서는 deque를 이용해 큐를 구현함- 기본 리스트 자료형의 데이터 삽입, 삭제보다, deque를 이용한 처리가 더 빠름- deque는 첫 번째 원소를 제거할 때 popleft()를, 마지막 원소를 제거할 때 pop() 사용- 첫 번째 인덱스에 원소 x를 삽입할 때 appendleft(x)를, 마지막 인덱스에 삽입할 때 append(x)를 사용

 

Counter

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

- iterable 객체가 주어졌을 때, 해당 객체 내부의 원소가 몇 번씩 등장했는지 알려줌


■  math

- 수학적인 기능을 포함하는 라이브러리

- 팩토리얼, 제곱근, 최대공약수 등을 계산해주는 기능을 포함

 

  • factorial(x) : x! 값을 반환 
  • sqrt(x) : x의 제곱근을 반환
  • gcd(a, b) : a와 b의 최대공약수 반환
  • pi나 자연상수 e 제공

 

 

'기타' 카테고리의 다른 글

[DB] 데이터 베이스 기초  (1) 2024.10.07
Git 기초 / Git 명령어  (1) 2024.09.11
[python] 아나콘다 파이썬 버전 확인 / 다운그레이드 / 버전 변경 방법 / Solving environment 무한로딩  (0) 2024.05.28
백엔드 개발자 채용 / 지원자격  (0) 2024.05.22
백엔드 개발자 주요 업무, 기술 스택, 필요 역량  (0) 2024.05.18
'기타' 카테고리의 다른 글
  • Git 기초 / Git 명령어
  • [python] 아나콘다 파이썬 버전 확인 / 다운그레이드 / 버전 변경 방법 / Solving environment 무한로딩
  • 백엔드 개발자 채용 / 지원자격
  • 백엔드 개발자 주요 업무, 기술 스택, 필요 역량
seulll
seulll
개인 공부 / 정리 블로그입니다
  • seulll
    seulll
    seulll
  • 전체
    오늘
    어제
    • 분류 전체보기 (329) N
      • 코딩테스트 (225) N
        • programmers (python) (156)
        • 백준 (python) (67) N
      • 자료구조 | 알고리즘 (14)
      • 개발 | 프로젝트 (40) N
        • Python (4)
        • Java | Spring (7)
        • Android (4) N
        • Unity (3)
        • API (4)
      • CS (15)
        • Network (5)
        • SQL (2)
        • OS (4)
      • 데이터 분석 (14)
      • 기타 (12)
  • 블로그 메뉴

    • 홈
    • 태그
    • 글쓰기
    • 설정
  • 링크

    • GitHub
  • 인기 글

  • 태그

    모델 성능 평가
    solving environment
    Greedy
    백엔드
    웹크롤링
    데이터분석
    코딩테스트
    프렌즈4블록
    카카오맵
    asterisk
    그리디 알고리즘
    백엔드 개발자
    train_test_split
    야근 지수
    프로그래머스
    confusion matrix
    API
    대입 표현식
    Python
    바다코끼리
    티스토리챌린지
    Boxplot
    카카오맵 api
    백엔드 개발자 역량
    박스플롯
    kakao map api
    2 x n 타일링
    파이썬
    오차행렬
    오블완
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
seulll
주요 라이브러리 문법
상단으로

티스토리툴바