我使用的是 python 3,我使用的是 PyMongo。
PyMongo 允许我像这样迭代数据库中的集合:
List['tomato',['apple',['carpet','dishwasher','mister T',[... etc.. etc..]],'coke'],'pie']
我目前正在使用最多 4 级的 for 循环。这很难维护和理解。
所以我想在所有嵌套数组中递归迭代,从第一个数组到最后一个嵌套数组。
谢谢你:)
裘德
最佳答案
如果您只是想展平您的列表,您可以使用如下函数递归它。每次遇到嵌套列表时它都会调用自己,并不断将元素保存到最后返回的结果列表中。
def recurse(in_list):
result=[]
for e in in_list:
if type(e)==list:
result+=recurse(e)
else:
result+=[e]
return result
创建函数后,您可以像这样使用它:
x=['tomato',['apple',['carpet','dishwasher','mister T'],'coke'],'pie']
recurse(x)
输出
['tomato', 'apple', 'carpet', 'dishwasher', 'mister T', 'coke', 'pie']
它只会处理嵌套列表,但您可以修改代码以处理其他类型(字典、集合等)
关于python - 在不知道嵌套级别数的情况下递归迭代到所有嵌套数组的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57464599/