เรามีรายการทูเพิล เราต้องค้นหา tuple ที่มีค่าสูงสุดในตัวมัน แต่ในกรณีที่มีทูเพิลมากกว่าหนึ่งตัวมีค่าเท่ากัน เราต้องการทูเพิลตัวแรกที่มีค่าสูงสุด
ด้วย itemgetter และ max
ด้วย itemgetter(1) เราได้รับค่าทั้งหมดจากตำแหน่งดัชนี 1 จากนั้นใช้ฟังก์ชัน max เพื่อรับรายการที่มีมูลค่าสูงสุด แต่ในกรณีที่ส่งคืนผลลัพธ์มากกว่าหนึ่งรายการ เราใช้ดัชนีศูนย์เพื่อรับ tuple แรกที่มีองค์ประกอบสูงสุดในนั้น
ตัวอย่าง
from operator import itemgetter # initializing list listA = [('Mon', 3), ('Tue', 20), ('Wed', 9)] # Given list print("Given list : \n" ,listA) # using max() and itemgetter() res = max(listA, key=itemgetter(1))[0] # printing result print("Day with maximum score is : \n",res)
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
Given list : [('Mon', 3), ('Tue', 20), ('Wed', 9)] Day with maximum score is : Tue
มีแม็กซ์และแลมบ์ดา
เราใช้ฟังก์ชันแลมบ์ดาเพื่อรับองค์ประกอบที่ตำแหน่งดัชนี 1 จากนั้นจึงใช้ฟังก์ชันสูงสุด จากนั้นเราใช้ตำแหน่งดัชนี 0 เพื่อให้ได้ผลลัพธ์แรกจากหลาย ๆ แมตช์เพื่อให้ได้ผลลัพธ์สุดท้าย
ตัวอย่าง
# initializing list listA = [('Mon', 3), ('Tue', 20), ('Wed', 9)] # Given list print("Given list : \n" ,listA) # using max() and lambda res = max(listA, key = lambda i : i[1])[0] # printing result print("Day with maximum score is : \n",res)
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
Given list : [('Mon', 3), ('Tue', 20), ('Wed', 9)] Day with maximum score is : Tue
มีการเรียงลำดับ
ในวิธีนี้เราใช้ฟังก์ชัน sorted โดยมีการกลับรายการเท่ากับเงื่อนไขจริงเมื่อใช้ฟังก์ชัน lambda
ตัวอย่าง
# initializing list listA = [('Mon', 3), ('Tue', 20), ('Wed', 9)] # Given list print("Given list : \n" ,listA) # using sorted() and lambda res = sorted(listA, key = lambda i: i[1], reverse = True)[0][0] # printing result print("Day with maximum score is : \n",res)
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
Given list : [('Mon', 3), ('Tue', 20), ('Wed', 9)] Day with maximum score is : Tue