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

Python - รับดัชนีขององค์ประกอบแรกมากกว่า K


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