Python에서 가장 큰 값과 가장 작은 값부터 순서대로 목록의 n개 요소 가져오기

사업

목록(배열)의 n개 요소를 Python에서 가장 큰 값 또는 가장 작은 값부터 순서대로 가져오려면 n=1이고 다음 내장 함수를 사용할 수 있습니다.

  • max()
  • min()

n>1이면 목록을 정렬하거나 표준 라이브러리의 heapq 모듈을 사용하는 두 가지 방법이 있습니다.

  • 최대값과 최소값 가져오기:max(),min()
  • 최대값과 최소값의 순서로 n개의 요소를 가져옵니다.:종류
  • 최대값과 최소값의 순서로 n개의 요소를 가져옵니다.:heapq기준 치수

검색할 요소의 수가 많으면 sorted() 또는 sort()를 사용하여 먼저 정렬하는 것이 더 효율적이고, 수가 적으면 heapq 모듈의 nargest() 및 nsmallest()가 더 효율적입니다.

최대값과 최소값의 인덱스를 얻으려면 max(), min() 및 index()를 사용하십시오.

최대값과 최소값 가져오기:max(),min()

목록의 최대 및 최소 요소를 얻으려면 내장 함수 max() 및 min()을 사용하십시오.

l = [3, 6, 7, -1, 23, -10, 18]

print(max(l))
# 23

print(min(l))
# -10

최대값과 최소값의 순서로 n개의 요소 가져오기: 정렬

목록의 n개 요소를 가장 큰 값 또는 가장 작은 값부터 순서대로 가져오려면 첫 번째 방법은 목록을 정렬(정렬)하는 것입니다.

목록을 정렬하려면 내장 함수 sorted() 또는 목록의 sort() 메서드를 사용합니다. sorted()는 새로운 정렬된 목록을 반환하고 sort()는 원래 목록을 재정렬합니다.

역으로 인수를 사용하여 오름차순/내림차순을 전환하고 위에서 원하는 수의 슬라이스를 선택하면 목록의 가장 큰 값/가장 작은 값부터 n개의 요소를 순서대로 가져올 수 있습니다.

ld = sorted(l, reverse=True)
print(ld)
# [23, 18, 7, 6, 3, -1, -10]

print(ld[:3])
# [23, 18, 7]

la = sorted(l)
print(la)
# [-10, -1, 3, 6, 7, 18, 23]

print(la[:3])
# [-10, -1, 3]

한 줄에 모두 쓸 수 있습니다.

print(sorted(l, reverse=True)[:3])
# [23, 18, 7]

print(sorted(l)[:3])
# [-10, -1, 3]

원본 목록의 순서를 변경하는 것이 마음에 들지 않으면 sort() 메서드를 사용할 수 있습니다.

print(l)
# [3, 6, 7, -1, 23, -10, 18]

l.sort(reverse=True)
print(l[:3])
# [23, 18, 7]

print(l)
# [23, 18, 7, 6, 3, -1, -10]

l.sort()
print(l[:3])
# [-10, -1, 3]

print(l)
# [-10, -1, 3, 6, 7, 18, 23]

최대값과 최소값의 순서로 n개의 요소를 가져옵니다.:heapq기준 치수

목록의 n개 요소를 가장 큰 값 또는 가장 작은 값부터 순서대로 가져오려면 heapq 모듈을 사용할 수 있습니다.

heapq 모듈에서 다음 함수를 사용합니다. 이 경우 원래 목록은 변경되지 않습니다.

  • nlargest()
  • nsmallest()

첫 번째 인수는 검색할 요소의 수이고 두 번째 인수는 대상이 될 반복 가능한(목록 등)입니다.

import heapq

l = [3, 6, 7, -1, 23, -10, 18]

print(heapq.nlargest(3, l))
# [23, 18, 7]

print(heapq.nsmallest(3, l))
# [-10, -1, 3]

print(l)
# [3, 6, 7, -1, 23, -10, 18]

처음에 썼듯이 검색할 요소의 수가 많으면 먼저 sorted() 또는 sort()로 정렬하는 것이 더 효율적이고, 숫자가 작으면 nargest()와 nsmallest()의 heapq 모듈이 더 효율적입니다.