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

Python - ตรวจสอบว่ามีรายการอยู่ในรายการอื่นหรือไม่


ระบุรายการหลามที่แตกต่างกันสองรายการ เราจำเป็นต้องค้นหาว่ารายการแรกเป็นส่วนหนึ่งของรายการที่สองหรือไม่

พร้อมแผนที่และเข้าร่วม

ขั้นแรก เราสามารถใช้ฟังก์ชันแผนที่เพื่อรับองค์ประกอบของรายการ จากนั้นจึงใช้ฟังก์ชันการรวมเพื่อสร้างรายการค่าที่คั่นด้วยเครื่องหมายจุลภาค ต่อไปเราใช้ตัวดำเนินการ in เพื่อดูว่ารายการแรกเป็นส่วนหนึ่งของรายการที่สองหรือไม่

ตัวอย่าง

listA = ['x', 'y', 't']
listB = ['t', 'z','a','x', 'y', 't']
print("Given listA elemnts: ")
print(', '.join(map(str, listA)))
print("Given listB elemnts:")
print(', '.join(map(str, listB)))

res = ', '.join(map(str, listA)) in ', '.join(map(str, listB))
if res:
   print("List A is part of list B")
else:
   print("List A is not a part of list B")

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

Given listA elemnts:
x, y, t
Given listB elemnts:
t, z, a, x, y, t
List A is part of list B

มีระยะและเลน

เราสามารถออกแบบ for loop เพื่อตรวจสอบการมีอยู่ขององค์ประกอบที่อยู่ในรายการอื่นโดยใช้ฟังก์ชัน range และฟังก์ชัน len

ตัวอย่าง

listA = ['x', 'y', 't']
listB = ['t', 'z','a','x', 'y', 't']
print("Given listA elemnts: \n",listA)
print("Given listB elemnts:\n",listB)

n = len(listA)
res = any(listA == listB[i:i + n] for i in range(len(listB) - n + 1))

if res:
   print("List A is part of list B")
else:
   print("List A is not a part of list B")

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

Given listA elemnts:
['x', 'y', 't']
Given listB elemnts:
['t', 'z', 'a', 'x', 'y', 't']
List A is part of list B