ค่าของไอเท็มในรายการ 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