如何检查项目是否在列表列表中

时间:2017-11-06 09:53:31

标签: python

我想检查项目是否在列表列表中,例如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 :

但它只适用于简单列表。

感谢您的帮助

2 个答案:

答案 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