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

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

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

ด้วย 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