ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 💢유용한 라이브러리 모음
    파이썬 2021. 10. 28. 21:48
    728x90

    💯 유용한 파이썬 라이브러리


    ➰실전에서 유용한 표준 라이브러리

    • 내장함수: 기본 입출력 함수부터 정렬 함수까지 없어서는 안 되는 필수적인 기능을 포함
    • itertools: 반복되는 형태의 데이터를 처리하기 위한 유용한 기능들을 제공
      • 특힌 순열과 조합 라이브러리는 코딩 테스트에서 자주 사용됨
    • heapq:힙(Heap) 자료구조를 제공
      • 일반적으로 우선순위 큐 기능을 구현하기 위해 사용
    • collections: 덱(deque), 카운터(Counter)등의 유용한 자료구조를 포함
    • math: 필수적인 수학적 기능을 제공
      = 팩토리얼, 제곱근, 최대공약수(GCD), 삼각함수 관련 함수부터 파이(pi)와 같은 상수를 포함

    ➰자주 사용되는 내장 함수

    ✅sum, min, max, eval

    result = sum([1, 2, 3, 4, 5])
    pring(result)
    
    min_result = min([7, 3, 5, 2])
    max_result = max([7, 3, 5, 2])
    
    result = eval("(3+5)*7")
    print(result)
    
    >>>
    15
    2 5
    56

    eval함수: 수식으로 표현된 하나의 식형태의 문자형을 수로 계산될 수 있도록 해줌

    ✅sorted(reverse=True)

    result = sorted([9, 1, 5, 8, 4])
    reverse_result = sorted([9, 1, 8, 5, 4], reverse=True)
    print(result)
    print(reverse_result)
    
    array = [('홍길동', 35), ('이순신', 75), ('아무개', 50)]
    result = sorted(array, key=lambda x:x[1], reverse=True)
    
    >>>
    [1, 4, 5, 8, 9]
    [9, 8, 5, 4, 1]
    [('이순신', 75), ('아무개', 50), ('홍길동', 35)]

    ➰순열과 조합

    • 순열(permutation): 서로 다른 n개에서 서로 다른 r개를 선택하여 일렬로 나열하는 것
      • {'A', 'B', 'C'}에서 세 개를 선택하여 나열하는 경우: 'ABC', 'ACB', 'BAC', 'BCA, 'CAB', 'CBA
    • 조합(combination): 서로 다른 n개에서 순서에 상관 없이 서로 다른 r개를 선택하는 것
      • {'A', 'B', 'C'}에서 순서를 고려하지 않고 두개를 뽑는 경우: 'AB', 'AC', 'BC'

    ✅순열 예제코드

    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')]

    ✅순열 중복허용 예제코드

    from itertools import product
    result = list(product(data, repeat=2))
    print(result)
    
    >>>
    [('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'B'), ('B', 'C'), ('C', 'A'), ('C', 'B'), ('C', 'C')]

    ✅조합 예제코드

    from itertools import combinations
    data = ['A', 'B', 'C']
    result = list(combinations(data, 2))
    print(result)
    
    >>>
    [('A', 'B'), ('A', 'C'), ('B', 'C')]

    ✅조합 중복허용 예제코드

    from itertools import combinations_with_replacement
    data = ['A', 'B', 'C']
    result = list(combinations_with_replacement(data, 2))
    print(result)
    
    >>>
    [('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'B'), ('B', 'C'), ('C', 'C')]

    ➰Counter

    • Counter는 등장 횟수를 세는 기능을 제공
    • 리스트와 같은 반복 가능한(iterable)객체가 주어졌을 때 내부의 원소가 몇 번씩 등장했는지를 알려줌
    
    counter = Counter(['red', 'blue', 'red', 'green', 'blue', 'blue'])
    
    print(counter['blue'])
    print(counter['green'])
    print(dict(counter))
    
    >>>3
    1
    {'red': 2, 'blue': 3, 'green': 1}

    ➰math

    • 최대 공약수를 구해야 할 때는 math 라이브러리의 gcd(greatest common devisor)함수를 이용할 수 있다.
    import math
    
    def lcm(a, b):
        return a*b //math.gcd(a, b)
    
    a = 21
    b = 14
    
    print(math.gcd(a, b))
    print(lcm(a, b))
    
    >>
    7
    42

    출처: https://www.youtube.com/watch?v=W1SO2e5IaSo&list=PLVsNizTWUw7H9_of5YCB0FmsSc-K44y81&index=11

    댓글

Designed by Tistory.