ด้วยการจัดทำดัชนี คุณสามารถดึงข้อมูลรายการหรือช่วงของรายการจากรายการได้ คุณสามารถดึงข้อมูลเฉพาะจากรายการหากคุณทราบหมายเลขดัชนีที่เกี่ยวข้องกับค่านั้น
หากต้องการค้นหาค่าดัชนีของรายการที่ใหญ่ที่สุดในรายการ คุณสามารถใช้ 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!