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

Python:목록에서 최대값 인덱스 검색

인덱싱을 통해 목록에서 항목 또는 항목 범위를 검색할 수 있습니다. 해당 값과 관련된 색인 번호를 알고 있는 경우에만 목록에서 특정 항목을 검색할 수 있습니다.

목록에서 가장 큰 항목의 인덱스 값을 찾으려면 max()를 사용할 수 있습니다. 및 index() 행동 양식. 이 가이드는 목록에서 최대 요소의 인덱스 값을 검색하는 프로그램을 안내합니다.

Python:목록에서 최대값의 인덱스 값 검색

마지막 수학 시험에서 가장 높은 점수를 받은 학생의 이름을 검색하는 프로그램을 작성하십시오. 그러면 이 이름이 콘솔에 인쇄됩니다.

시작하려면 l두 개의 목록을 만드십시오:

students = ["Andy", "April", "Julia", "Gary"]
grades = [75, 82, 64, 68]

첫 번째 목록에는 학급에 있는 학생의 이름이 포함됩니다. 두 번째 목록에는 해당 등급이 포함되어 있습니다.

이러한 목록은 병렬 배열입니다. 즉, 두 배열의 크기가 동일하고 각 값이 레코드의 일부를 나타냅니다. "students"는 이름을 포함하고 "grade"는 해당 학생들이 받은 성적을 포함합니다.

다음으로 목록에서 가장 큰 등급을 찾습니다. max() 함수를 사용하여 목록에서 가장 큰 등급을 찾을 수 있습니다.

largest = max(grades)

이 코드는 가장 큰 수를 검색합니다. 이것은 정확히 이상적이지는 않습니다. 가장 큰 숫자의 인덱스 위치를 검색하려고 합니다. 그렇게 하려면 다른 내장 함수인 index()를 사용하십시오. 목록에서 가장 큰 항목의 인덱스 값을 검색해 보겠습니다.

참가자의 81%는 부트캠프에 참석한 후 기술 직업 전망에 대해 더 자신감을 느꼈다고 말했습니다. 지금 부트캠프에 참여하십시오.

부트캠프 졸업생은 부트캠프 시작부터 첫 직장을 찾는 데까지 6개월도 채 걸리지 않았습니다.

index_of_largest = grades.index(largest)

두 목록이 평행하기 때문에 "성적" 목록에서 가장 높은 학년의 색인 번호는 "학생" 목록에서 해당 학점을 받은 학생의 색인 번호와 동일합니다.

다음으로 누가 가장 높은 점수를 얻었는지 알려주는 메시지를 콘솔에 인쇄하십시오.

print("{} earned the highest grade in the class. Their grade was {}.".format(students[index_of_largest], largest))

인덱싱 구문을 사용하여 가장 높은 점수를 받은 학생의 이름을 검색합니다. 그런 다음 이 값과 그들이 얻은 등급을 문자열에 추가하십시오.

프로그램을 실행하고 어떤 일이 일어나는지 확인하십시오:

April earned the highest grade in the class. Their grade was 82.

코드는 가장 높은 점수를 받은 학생을 성공적으로 식별합니다. 최소 요소의 인덱스를 찾으려면 max()를 대체할 수 있습니다. min() 함수 .

최대값과 동일한 여러 인덱스 찾기

가장 높은 점수를 받은 학생이 두 명이라면 어떻게 됩니까? 위의 프로그램은 특정 성적을 얻은 첫 번째 학생의 인덱스 위치만 반환합니다.

특정 성적을 얻은 모든 학생의 발생을 찾으려면 목록 이해를 사용할 수 있습니다. 값을 초기화하고 이전과 같이 목록에서 가장 큰 항목의 인덱스 값을 검색하여 시작합니다.

students = ["Andy", "April", "Julia", "Gary", "Paul"]
grades = [75, 82, 64, 68, 82]
largest = max(grades)

새 프로그램에서 두 학생의 성적이 같은 경우 어떻게 되는지 알아보기 위해 하나의 레코드를 추가했습니다.

다음으로 목록 이해를 작성하십시오. 이 목록 이해는 특정 성적을 얻은 모든 학생의 색인 위치를 찾습니다.

all_grades = [g for g, x in enumerate(grades) if x == largest]

이 코드는 "등급" 목록의 모든 등급을 반복합니다. 각 등급은 "등급" 목록에서 가장 큰 값과 비교됩니다. 값이 최고 등급과 같으면 목록에 추가됩니다.

enumerate() 함수는 목록을 인덱스 번호와 값의 두 가지 목록으로 나눕니다. 따라서 "g"는 목록에 있는 항목의 인덱스를 나타내고 "x"는 항목의 값을 나타냅니다.

다음으로, for 루프를 사용하여 발견된 가장 높은 성적과 같은 성적을 가진 각 학생에 대한 메시지를 출력합니다.

for g in all_grades:
	print("{} earned the highest grade in the class. Their grade was {}.".format(students[g], grades[g]))

여러 학생이 수업에서 가장 높은 점수를 받은 경우 for 루프가 여러 번 실행됩니다. 루프가 실행될 때마다 수업에서 가장 높은 점수를 받았다는 메시지와 함께 학생 이름이 콘솔에 인쇄됩니다.

프로그램 실행:

April earned the highest grade in the class. Their grade was 82.
Paul earned the highest grade in the class. Their grade was 82.

우리 프로그램은 학급에서 가장 높은 점수를 받은 모든 학생의 이름을 성공적으로 보여줍니다.

결론

index()를 사용하여 목록에 있는 항목의 인덱스 값을 검색할 수 있습니다. . min()과 결합 또는 max() 방법을 사용하면 목록에서 가장 작은 항목 또는 가장 큰 항목의 인덱스 값을 찾을 수 있습니다.

이제 파이썬 전문가처럼 목록에서 최대값의 인덱스 값을 검색하는 데 필요한 지식을 얻었습니다!