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

Python – หาดัชนีของสมาชิกลิสต์หนึ่งในอีกลิสต์หนึ่ง

เมื่อต้องการหาดัชนีของสมาชิกแต่ละตัวในลิสต์หนึ่งปรากฏในอีกลิสต์หนึ่ง สามารถใช้ 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]

  • แสดงผลลัพธ์ลิสต์ของลิสต์ดัชนี