def flatten(lst):
for elem in lst:
if isinstance(elem, collections.Iterable) and not isinstance(elem, (str, bytes)):
yield from flatten(elem)
else:
yield elem
if "special" in flatten(my_list):
print ("Found it")
very_special = ["special"]
my_list = ["stuff", very_special]
if "special" in my_list:
print("Found it")
for item in my_list:
if isinstance(item, list) and "special" in item:
print("Found it nested inside")
very_special = ["special"]
my_list = ["stuff", very_special]
def nested_list_search(lst, term):
for ele in lst:
if isinstance(ele, list):
nested_list_search(ele, term)
else:
if ele == term:
print("Found it")
nested_list_search(my_list, "special")
>>> Found it
如果嵌套只有一层深,则可以在外部列表中的每个元素上循环:
如果要处理任意嵌套,首先需要将它们展平(如Flatten (an irregular) list of lists):
这里的另一个用户建议递归…这可能是对他所要求的东西的过度杀戮。你也可以看看这些东西。你知道吗
您可以通过使用递归来实现这一点。大致如下:
相关问题 更多 >
编程相关推荐