我的列表中有一个列表。
我想知道它是否包含感兴趣的项目。
例如:L=[['READ',[A,B],'2'],['WRITE',[C,D],'2']]
现在,我有一个字符串,str=READ
,我想迭代两个列表(包括子列表)以查找是否存在这样的元素。有没有一种方法可以在不使用索引的情况下做到这一点?
我不想使用索引,因为不能保证列表长度保持不变。
最佳答案
假设正在搜索的数据结构中没有循环,这就是一个简单的递归问题:
def find(x, L):
return x in L or any(find(x, sublist)
for sublist in L
if isinstance(sublist, list))
如果数据结构中可能存在循环,那么您必须防止进入无限递归
def find(x, L, seen=None):
if seen is None:
seen = set()
if id(L) in seen:
# Avoid infinite recursion
return False
seen.add(id(L))
return x in L or any(find(x, sublist, seen)
for sublist in L
if isinstance(sublist, list))
关于python - 在列表列表中查找元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18942202/