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

Get Match Indices ใน Python: หาดัชนีของค่าที่ตรงกันระหว่างสองลิสต์

ได้ลิสต์สองลิสต์ ต้องการหาดัชนีในลิสต์แรกของค่าที่ปรากฏในลิสต์ที่สอง

วิธี 1: ใช้ list.index() ใน List Comprehension

listA = ['Mon','Tue','Wed','Thu','Fri']
listB = ['Tue','Fri']
res = [listA.index(i) for i in listB]
print(res)  # [1, 4]

วิธี 2: ใช้ enumerate และ set (เร็วกว่าสำหรับลิสต์ใหญ่)

listA = ['Mon','Tue','Wed','Thu','Fri']
listB = ['Tue','Fri']
setB = set(listB)
res = [i for i, val in enumerate(listA) if val in setB]
print(res)  # [1, 4]

สรุป

  • วิธี 1 เรียบง่าย แต่อาจช้า (O(n×m))
  • วิธี 2 ใช้เซตค้นหา O(1) รวม O(n+m) เหมาะสำหรับข้อมูลมาก