Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 K보다 큰 가장 작은 요소 찾기

<시간/>

Python을 사용하여 데이터를 분석하는 동안 특정 기준을 충족하는 목록에서 요소를 필터링해야 하는 많은 시나리오를 접하게 됩니다. 이 기사에서는 요소보다 크지만 주어진 요소보다 큰 모든 요소 중에서 가장 작은 목록에서 요소를 가져오는 방법을 볼 것입니다.

최소값

k보다 큰 값의 일반적인 기준을 충족하면서 목록의 각 요소를 통과하도록 for 루프를 설계합니다. 그런 다음 이러한 모든 요소에 대해 min 함수를 적용하여 최소값을 얻습니다.

listA = [1,5,6, 7,11,14]

# Original list
print("Given list : ",listA)

k = 8

# using min
res = min(i for i in listA if i > k)

# Result
print("Missing elements from the list : \n" ,res)

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

Minimum element gerater than k :
11

필터 포함

여기서 람다 함수를 사용하여 값이 K보다 큰 요소를 가져옵니다. 그런 다음 필터 기능을 적용하여 해당 값만 가져옵니다. 마지막으로 min 함수를 적용하여 이 목록에서 최소값을 가져옵니다.

listA = [1,5,6, 7,11,14]

# printing original list
print("Given list : ",listA)

k = 8

# using min
res = min(filter(lambda i: i > k, listA))

# Result
print("Minimum element gerater than k : \n" ,res)

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

Minimum element gerater than k :
11

bisect_right 사용

bisect_right 함수는 bisect 모듈에서 사용할 수 있습니다. 제공된 특정 매개변수 값보다 크거나 같은 지점에서 목록을 이등분합니다. 이 예에서는 목록을 가져와 정렬한 다음 bisect_right 함수를 적용합니다. 필요한 값보다 큰 요소의 인덱스를 얻습니다.

from bisect import bisect_right
listA = [1,5,6, 7,11,14]

# printing original list
print("Given list : ",listA)

k = 8

listA.sort()
# Using bisect_right
res = listA[bisect_right(listA, k)]

# Result
print("Minimum element gerater than k : \n" ,res)

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

Minimum element gerater than k :
11