ค่าของไอเท็มในรายการ python ไม่จำเป็นต้องอยู่ในลำดับการเรียงลำดับใดๆ ยิ่งไปกว่านั้น อาจมีสถานการณ์เมื่อเราสนใจเฉพาะค่าบางค่าที่มากกว่าค่าเฉพาะ ในบทความนี้เราจะมาดูกันว่าเราจะได้รับ
การใช้การแจงนับ
การใช้การแจงนับเราจะได้ทั้งดัชนีและค่าขององค์ประกอบในรายการ จากนั้นเราใช้เงื่อนไขมากกว่าเพื่อรับเฉพาะองค์ประกอบแรกที่ตรงตามเงื่อนไข ฟังก์ชันถัดไปจะผ่านองค์ประกอบแต่ละรายการทีละรายการ
ตัวอย่าง
List = [21,10,24,40.5,11]
print("Given list: " + str(List))
#Using next() + enumerate()
result = next(k for k, value in enumerate(List)
if value > 25)print("Index is: ",result) การรันโค้ดด้านบนทำให้เราได้ผลลัพธ์ดังต่อไปนี้
ผลลัพธ์
Given list: [21, 10, 24, 40.5, 11] Index is: 3
การใช้ตัวกรองและฟังก์ชันแลมบ์ดา
ในตัวอย่างถัดไป เราจะใช้ฟังก์ชันแลมบ์ดาเพื่อเปรียบเทียบค่าที่กำหนดกับค่าที่แต่ละดัชนี จากนั้นกรองค่าที่ตรงตามเงื่อนไขที่ต้องการออก จากรายการองค์ประกอบที่ตรงตามเงื่อนไขที่กำหนด เราเลือกองค์ประกอบแรกที่ดัชนี 0 สำหรับคำตอบของเรา
ตัวอย่าง
List = [21,10,24,40.5,11]
print("Given list: " + str(List))
#Using filter() + lambda
result = list(filter(lambda k: k > 25, List))[0]
print("Index is: ",List.index(result)) การรันโค้ดด้านบนทำให้เราได้ผลลัพธ์ดังต่อไปนี้
ผลลัพธ์
Given list: [21, 10, 24, 40.5, 11] Index is: 3
การใช้แผนที่และแลมบ์ดา
ในตัวอย่างต่อไป เราใช้แนวทางที่คล้ายกันแต่ใช้แผนที่แทนตัวกรอง ฟังก์ชันแผนที่ใช้เพื่อวนซ้ำแต่ละองค์ประกอบ เมื่อใดก็ตามที่เงื่อนไขเป็นจริง ดัชนีจะถูกจับ
ตัวอย่าง
List = [21,10,24,40.5,11]
print("Given list: " + str(List))
result = list(map(lambda k: k > 25, List)).index(True)
print("Index is: ",(result)) การรันโค้ดด้านบนทำให้เราได้ผลลัพธ์ดังต่อไปนี้
ผลลัพธ์
Given list: [21, 10, 24, 40.5, 11] Index is: 3