เรามีรายการทูเพิล เราต้องค้นหา 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