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

รับองค์ประกอบแรกที่มีมูลค่าสูงสุดในรายการสิ่งอันดับใน Python


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