주요 라이브러리 문법

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
  • 전체
    오늘
    어제
    • 분류 전체보기 (338)
      • 코딩테스트 (230)
        • programmers (python) (156)
        • 백준 (python) (72)
      • 자료구조 | 알고리즘 (14)
      • 개발 | 프로젝트 (43)
        • Python (4)
        • Java | Spring (7)
        • Android (5)
        • Unity (3)
        • API (4)
      • CS (15)
        • Network (5)
        • SQL (2)
        • OS (4)
      • 데이터 분석 (14)
      • 기타 (13)
  • 블로그 메뉴

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

    • GitHub
  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바