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

Python - K보다 큰 첫 번째 요소의 인덱스 가져오기

<시간/>

파이썬 목록에 있는 항목의 값은 반드시 정렬된 순서로 되어 있지는 않습니다. 또한 특정 값보다 큰 특정 값에만 관심이 있는 상황이 있을 수 있습니다. 이 기사에서는

열거 사용

열거를 사용하여 목록에 있는 요소의 인덱스와 값을 모두 얻습니다. 그런 다음 조건이 충족되는 첫 번째 요소만 얻기 위해 보다 큼 조건을 적용합니다. 다음 함수는 각 목록 요소를 하나씩 살펴봅니다.

예시

List = [21,10,24,40.5,11]
print("Given list: " + str(List))
#Using next() + enumerate()
result = next(k for k, value in enumerate(List)
if value > 25)print("Index is: ",result)

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

출력

Given list: [21, 10, 24, 40.5, 11]
Index is: 3

필터 및 Lambda 함수 사용

다음 예제에서는 람다 함수를 사용하여 주어진 값을 각 인덱스의 값과 비교한 다음 필요한 조건을 충족하는 값을 필터링합니다. 필요한 조건을 만족하는 요소 목록에서 인덱스 0에 있는 첫 번째 요소를 답으로 선택합니다.

예시

List = [21,10,24,40.5,11]
print("Given list: " + str(List))
#Using filter() + lambda
result = list(filter(lambda k: k > 25, List))[0]
print("Index is: ",List.index(result))

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

출력

Given list: [21, 10, 24, 40.5, 11]
Index is: 3

지도 및 람다 사용

다음 예에서는 유사한 접근 방식을 취하지만 필터 대신 맵을 사용합니다. map 함수는 각 요소를 반복하는 데 사용됩니다. 조건이 true가 될 때마다 해당 인덱스가 캡처됩니다.

예시

List = [21,10,24,40.5,11]
print("Given list: " + str(List))
result = list(map(lambda k: k > 25, List)).index(True)
print("Index is: ",(result))

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

출력

Given list: [21, 10, 24, 40.5, 11]
Index is: 3