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