Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python:ดึงดัชนีของค่าสูงสุดในรายการ

ด้วยการจัดทำดัชนี คุณสามารถดึงข้อมูลรายการหรือช่วงของรายการจากรายการได้ คุณสามารถดึงข้อมูลเฉพาะจากรายการหากคุณทราบหมายเลขดัชนีที่เกี่ยวข้องกับค่านั้น

หากต้องการค้นหาค่าดัชนีของรายการที่ใหญ่ที่สุดในรายการ คุณสามารถใช้ max() และ index() วิธีการ คู่มือนี้จะแนะนำคุณเกี่ยวกับโปรแกรมที่ดึงค่าดัชนีขององค์ประกอบสูงสุดในรายการ

Python:ดึงค่าดัชนีของค่าสูงสุดในรายการ

เขียนโปรแกรมที่ดึงชื่อนักเรียนที่ได้คะแนนสูงสุดในการทดสอบคณิตศาสตร์ครั้งล่าสุด จากนั้นพิมพ์ชื่อนี้ไปที่คอนโซล

ในการเริ่มต้น ให้สร้างสองรายการ:

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

รายการแรกประกอบด้วยชื่อของนักเรียนในชั้นเรียน รายการที่สองประกอบด้วยเกรดตามลำดับ

รายการเหล่านี้เป็นอาร์เรย์คู่ขนาน ซึ่งหมายความว่าอาร์เรย์ทั้งสองมีขนาดเท่ากัน และแต่ละค่าแสดงถึงส่วนหนึ่งของระเบียน "นักเรียน" ประกอบด้วยชื่อและ "เกรด" ประกอบด้วยเกรดที่นักเรียนได้รับ

ถัดไป ค้นหาเกรดที่ใหญ่ที่สุดในรายการ คุณสามารถใช้ฟังก์ชัน max() เพื่อค้นหาเกรดที่ใหญ่ที่สุดในรายการ:

largest = max(grades)

รหัสนี้ดึงจำนวนที่มากที่สุด นี้ไม่เหมาะอย่างแน่นอน คุณต้องการดึงข้อมูลตำแหน่งดัชนีของจำนวนที่มากที่สุด ในการทำเช่นนั้น ให้ใช้ฟังก์ชันในตัวอื่น:index() ลองดึงค่าดัชนีของรายการที่ใหญ่ที่สุดในรายการ:

81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้

ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก

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 loop พิมพ์ข้อความสำหรับนักเรียนแต่ละคนที่มีเกรดเท่ากับเกรดสูงสุดที่พบ:

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() วิธี คุณสามารถค้นหาค่าดัชนีของรายการที่เล็กที่สุดหรือใหญ่ที่สุดในรายการ

ตอนนี้คุณมีความรู้ที่จำเป็นในการดึงค่าดัชนีของค่าสูงสุดในรายการอย่างผู้เชี่ยวชาญ Python!