Python

파이썬의 유용한 4가지 함수

찐남 2022. 9. 17. 09:01

파이썬 코드를 멋지게 작성하고 싶지만,

최고의 품질을 갖추기 위해서는

다양한 함수를 알아야 합니다.

 

이러한 목적을 위해 이번 포스팅에서는

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 모듈에 대해 알게 되었습니다.

간단한 포스팅에서 새로운 것을

배웠다고 생각이 드시면 좋겠습니다.

 

끝까지 읽어 주셔서 감사합니다! 

 

 

 

 

반응형