รายการสามารถซ้อนกันได้ หมายถึงองค์ประกอบของรายการเป็นรายการเอง ในบทความนี้ เราจะมาดูว่าจะทราบได้อย่างไรว่าองค์ประกอบที่กำหนดมีอยู่ในรายการย่อยซึ่งเป็นองค์ประกอบในรายการที่ใหญ่กว่าหรือไม่
กับอะไรก็ได้
ก่อนอื่นเราจะค้นหาว่ามีองค์ประกอบอยู่ในรายการย่อยหรือไม่และมีรายการย่อยอยู่ในรายการหรือไม่ หากสิ่งนี้เป็นจริง เราสามารถพูดได้ว่าองค์ประกอบนั้นมีอยู่ในรายการ
ตัวอย่าง
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