ลิสต์สามารถซ้อนกันได้ หมายถึงองค์ประกอบของลิสต์เป็นลิสต์ด้วย ในบทความนี้เราจะดูวิธีหาว่าองค์ประกอบที่กำหนดมีอยู่ในสับลิสต์ซึ่งเป็นองค์ประกอบในลิสต์ใหญ่กว่า
ด้วย any
เราค้นหาก่อนว่าองค์ประกอบอยู่ในสับลิสต์ และถ้าสับลิสต์อยู่ในลิสต์ ถ้าอย่างใดอย่างหนึ่งเป็นจริง เราบอกได้ว่าองค์ประกอบอยู่ในลิสต์
ตัวอย่าง
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")
Output
การรันโค้ดข้างต้นให้ผลลัพธ์ดังนี้ -
Given List : [[-9, -1, 3], [11, -8], [-4, 434, 0]] Element to Search: -8 Present
ด้วย in
ในวิธีนี้เราค้นหาแบบง่ายด้วยตัวดำเนินการ 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")
Output
การรันโค้ดข้างต้นให้ผลลัพธ์ดังนี้ -
Given List : [[-9, -1, 3], [11, -8], [-4, 434, 0]] Element to Search: -8 Present New Element to Search: 13 Not Present
ด้วย chain
ด้วยเมธอด chain จากโมดูล itertools เราสามารถขยายลิสต์ของสับลิสต์และตรวจสอบความมีอยู่ขององค์ประกอบด้วยเมธอด in
ตัวอย่าง
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")
Output
การรันโค้ดข้างต้นให้ผลลัพธ์ดังนี้ -
Given List : [[-9, -1, 3], [11, -8], [-4, 434, 0]] Element to Search: -8 Present New Element to Search: 13 Not Present