문제는 배열을 통해 무언가를 선형적으로 검색할 때 배열의 끝에 도달할 때까지 그것이 발견되지 않았다는 것을 알 수 없다는 것입니다. 질문의 코드는 일치하는 다른 요소가 있을 수 있음에도 불구하고 일치하지 않는 각 요소에 대해 "찾을 수 없음"을 보고합니다.
간단한 수정은 변수를 사용하여 무언가를 찾았는지 추적한 다음 루프 끝에서 해당 변수를 확인하는 것입니다.
으아아아
Python의 for 循环中有一个 else: 块。仅当循环运行完成时才执行代码,而不是由于使用 break 而结束。这使您可以避免 found 변수(나중에 처리하는 데 여전히 유용할 수 있음):
으아아아
일부 언어에는 루프를 직접 작성하는 대신 사용할 수 있는 메커니즘이 내장되어 있습니다.
일부 언어에는 콜백 함수를 받아들이고 배열의 모든 요소에 대해 함수가 성공했는지 여부를 나타내는 부울 값을 반환하는 any 或 some 함수가 있습니다.
언어에 배열 필터링이 있는 경우 조건을 확인한 후 결과가 빈 배열인지 확인하는 함수를 사용하여 입력 배열을 필터링할 수 있습니다.
요소를 정확히 일치시키려는 경우 대부분의 언어에서는 일치하는 요소를 검색하는 find 或 index 기능을 제공합니다.
자주 검색할 예정이라면 배열을 보다 효율적으로 검색할 수 있는 데이터 구조로 변환하는 것이 가장 좋습니다. 대부분의 언어는 集合和/或哈希表데이터 구조를 제공합니다(후자는 연관 배열, 맵, 사전 등 언어에 따라 다양한 이름으로 지정됨). 일반적으로 검색하는 데 O(1) 시간이 걸리고 배열을 스캔하는 데 O(n) 시간이 걸립니다.
문제는 배열을 통해 무언가를 선형적으로 검색할 때 배열의 끝에 도달할 때까지 그것이 발견되지 않았다는 것을 알 수 없다는 것입니다. 질문의 코드는 일치하는 다른 요소가 있을 수 있음에도 불구하고 일치하지 않는 각 요소에 대해 "찾을 수 없음"을 보고합니다.
간단한 수정은 변수를 사용하여 무언가를 찾았는지 추적한 다음 루프 끝에서 해당 변수를 확인하는 것입니다.
으아아아Python의
으아아아for
循环中有一个else:
块。仅当循环运行完成时才执行代码,而不是由于使用break
而结束。这使您可以避免found
변수(나중에 처리하는 데 여전히 유용할 수 있음):일부 언어에는 루프를 직접 작성하는 대신 사용할 수 있는 메커니즘이 내장되어 있습니다.
any
或some
함수가 있습니다.find
或index
기능을 제공합니다.자주 검색할 예정이라면 배열을 보다 효율적으로 검색할 수 있는 데이터 구조로 변환하는 것이 가장 좋습니다. 대부분의 언어는
集合
和/或哈希表
데이터 구조를 제공합니다(후자는 연관 배열, 맵, 사전 등 언어에 따라 다양한 이름으로 지정됨). 일반적으로 검색하는 데 O(1) 시간이 걸리고 배열을 스캔하는 데 O(n) 시간이 걸립니다.