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

ตรวจสอบว่ามีองค์ประกอบอยู่ในรายการของรายการใน Python


รายการสามารถซ้อนกันได้ หมายถึงองค์ประกอบของรายการเป็นรายการเอง ในบทความนี้ เราจะมาดูว่าจะทราบได้อย่างไรว่าองค์ประกอบที่กำหนดมีอยู่ในรายการย่อยซึ่งเป็นองค์ประกอบในรายการที่ใหญ่กว่าหรือไม่

กับอะไรก็ได้

ก่อนอื่นเราจะค้นหาว่ามีองค์ประกอบอยู่ในรายการย่อยหรือไม่และมีรายการย่อยอยู่ในรายการหรือไม่ หากสิ่งนี้เป็นจริง เราสามารถพูดได้ว่าองค์ประกอบนั้นมีอยู่ในรายการ

ตัวอย่าง

listA = [[-9, -1, 3], [11, -8],[-4,434,0]]
search_element = -8

# Given list
print("Given List :\n", listA)

print("Element to Search: ",search_element)

# Using in
if any(search_element in sublist for sublist in listA):
   print("Present")
else:
   print("Not Present")

ผลลัพธ์

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

('Given List :\n', [[-9, -1, 3], [11, -8], [-4, 434, 0]])
('Element to Search: ', -8)
Present

มีใน

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

ตัวอย่าง

listA = [[-9, -1, 3], [11, -8],[-4,434,0]]
search_element = -8

# Given list
print("Given List :\n", listA)

print("Element to Search: ",search_element)

# Using in
if search_element in (item for sublist in listA for item in sublist):
   print("Present")
else:
   print("Not Present")

search_element = 13
print("New Element to Search: ",search_element)

# Using in
if search_element in (item for sublist in listA for item in sublist):
   print("Present")
else:
   print("Not Present")

ผลลัพธ์

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

Given List :
[[-9, -1, 3], [11, -8], [-4, 434, 0]]
Element to Search: -8
Present
New Element to Search: 13
Not Present

มีโซ่

ด้วยเมธอดลูกโซ่จากโมดูล itertools เราสามารถขยายรายการย่อยและตรวจสอบการมีอยู่ขององค์ประกอบโดยใช้ in menthod ได้

ตัวอย่าง

from itertools import chain

listA = [[-9, -1, 3], [11, -8],[-4,434,0]]
search_element = -8

# Given list
print("Given List :\n", listA)

print("Element to Search: ",search_element)

# Using in
if search_element in chain(*listA):
   print("Present")
else:
   print("Not Present")

search_element = 13
print("New Element to Search: ",search_element)

# Using in
if search_element in chain(*listA):
   print("Present")
else:
   print("Not Present")

ผลลัพธ์

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

Given List :
[[-9, -1, 3], [11, -8], [-4, 434, 0]]
Element to Search: -8
Present
New Element to Search: 13
Not Present