파이썬 코드를 멋지게 작성하고 싶지만,
최고의 품질을 갖추기 위해서는
다양한 함수를 알아야 합니다.
이러한 목적을 위해 이번 포스팅에서는
4가지 유용한 함수를 알려 드리려고 합니다.
코드 라인을 줄이고 루프를 제거하는 데
도움이 될 것이며 이는 코드를 작성할 때
생산성을 향상할 것이라고 확신합니다.
목차
- n개의 가장 큰 수 얻기
- n개의 가장 작은 수 얻기
- 문자열의 특정 부분 제거
- 리스트에서 중복 값을 제거하는 두 가지 방법
n개의 가장 큰 수 얻기
최댓값을 얻으려면
max 함수를 사용한다는 것을 알고 있습니다.
max([15, 21, 30, 20])
# 20
하지만 최대 숫자 리스트를 얻으려면
어떻게 해야 할까요?
파이썬에는 heapq라 불리는
"heap queue"라는 모듈이 있습니다.
이 모듈은 각 부모 노드가 자식 노드보다
작거나 같은 특수 트리 구조인 힙 큐 알고리즘을 사용합니다.
heapq 모듈에는 nlargest라는 메서드가 있습니다.
이 메서드는 우리가 결정한 길이가 있는
목록을 반환합니다.
수행 방법을 살펴보겠습니다.
import heapq
heap = [10, 5, 18, 1, 100]
nLargestNumbers = heapq.nlargest(3, heap)
print(nLargestNumbers)
# [100, 18, 10]
n개의 가장 작은 수 얻기
최솟값을 얻으려면
min 함수를 사용한다는 것을 알고 있습니다.
min([15, 21, 30, 20])
# 15
n개의 가장 작은 숫자 리스트를 가져와야 하고
heapq 모듈이 이를 도와줄 것입니다.
import heapq
heap = [10, 5, 18, 1, 100, 8, 7]
nSmallestNumbers = heapq.nsmallest(4, heap)
print(nSmallestNumbers)
# [1, 5, 7, 8]
문자열의 특정 부분 제거하기
"+-+-+Python"과 같은 문자열이 있고
Python 단어만 얻고 싶으면 어떻게 할까요?
파이썬에는 이러한 작업을 해결할 수 있는
removeprefix라는 메서드가 있습니다.
myString = "+-+-+Python"
newString = myString.removeprefix("+-+-+")
print(newString)
# Python
리스트에서 중복을 제거하는 두가지 방법
아래에서 볼 수 있듯이 set을 사용하여
중복 값을 제거하려고 시도했다는 것을
알고 있습니다.
li = [10, 15, 10, 10, 5, 5]
withoutDuplicates = list(set(li))
print(withoutDuplicates)
# [10, 5, 15]
이 첫 번째 방법은 결과가 원래대로
정렬되지 않았기 때문에
두 번째 방법을 보여 드리겠습니다.
li = [10, 15, 10, 10, 5, 5]
withoutDuplicates = dict.fromkeys(li)
print(list(withoutDuplicates))
# [10, 15, 5]
결론
파이썬의 유용한 함수들은
효율적인 코드를 작성하는 데 도움이 됩니다.
우리는 네 가지 함수에 대해 살펴보았고,
이제 파이썬 코드를 작성하는 데 도움이 되는
heap queue와 heapq 모듈에 대해 알게 되었습니다.
간단한 포스팅에서 새로운 것을
배웠다고 생각이 드시면 좋겠습니다.
끝까지 읽어 주셔서 감사합니다!
'Python' 카테고리의 다른 글
파이썬 코드의 모범 사례 (0) | 2022.11.12 |
---|---|
파이썬 클래스 변수 사용법 (2) | 2022.09.30 |
파이썬의 10가지 유용한 팁 (0) | 2022.09.05 |
웹 스크래핑 배우기 (0) | 2022.08.06 |
Python에서 *args 및 **kwargs 이해하기 (0) | 2022.07.31 |
댓글