我想检查项目是否在列表列表中,例如1是否在:
my_list = [[[-1, -1, 0], [-1, -1, -1, -1]], [[-1, 1, -1, -1], [-1, -1, -1, -1]], [[-1, -1, -1, -1], [-1, -1, -1, -1]]]
我试过了:
if 1 in my_list :
但它只适用于简单列表。
感谢您的帮助
答案 0 :(得分:5)
这应该有效
from itertools import chain
1 in chain.from_iterable(chain.from_iterable(my_list))
答案 1 :(得分:1)
要在锯齿状列表中查找项目,您可以使用递归,通过再次调用函数来输入搜索嵌套列表,或者只是测试非列表项的相等性:
def recursive_find(lst, item):
for x in lst:
if isinstance(x, list):
if recursive_find(x, item):
return True
elif x==item:
return True
return False
print(recursive_find(my_list, 0)) # -> True
print(recursive_find(my_list, 8)) # -> False