เมื่อต้องการหาดัชนีของสมาชิกแต่ละตัวในลิสต์หนึ่งปรากฏในอีกลิสต์หนึ่ง สามารถใช้ enumerate(), setdefault() และ list comprehension ได้
ตัวอย่าง
my_list = [14, 52, 23, 47, 18, 23, 12, 54, 43, 22, 28, 13]
print("The list is :")
print(my_list)
my_list_2 = [17, 52, 13]
print("The second list is :")
print(my_list_2)
element_indices = dict()
for index, value in enumerate(my_list):
element_indices.setdefault(value, []).append(index)
my_result = [element_indices.get(index, [None]) for index in my_list_2]
print("The result is :")
print(my_result)
ผลลัพธ์
The list is : [14, 52, 23, 47, 18, 23, 12, 54, 43, 22, 28, 13] The second list is : [17, 52, 13] The result is : [[None], [1], [11]]
คำอธิบาย
กำหนดลิสต์หลักและลิสต์คำค้นหา
สร้าง dictionary ว่าง ใช้
enumerate()วนลูปลิสต์หลักsetdefault()สร้างลิสต์ดัชนีสำหรับแต่ละค่าใช้ list comprehension ค้นหาดัชนีของแต่ละค่าในลิสต์คำค้นหาจาก dictionary ถ้าไม่มีคืน
[None]แสดงผลลัพธ์ลิสต์ของลิสต์ดัชนี