列表可以嵌套,这意味着列表的元素本身就是列表。在本文中,我们将了解如何确定子列表中是否存在给定元素,这些元素本身就是更大列表中的元素。
我们首先搜索子列表中是否存在元素,以及列表中是否存在子列表。如果这是真的,我们可以说该元素存在于列表中。
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模块中的chain方法,我们可以扩展子列表的列表,并使用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")
输出结果
运行上面的代码给我们以下结果-
Given List : [[-9, -1, 3], [11, -8], [-4, 434, 0]] Element to Search: -8 Present New Element to Search: 13 Not Present