Python 递归地获取列表列表中的每个元素(展平不适用)
我正在创建无限深度的列表,例如:Python 递归地获取列表列表中的每个元素(展平不适用),python,python-3.x,recursion,Python,Python 3.x,Recursion,我正在创建无限深度的列表,例如: [[[['Alpha'], ['Bravo']], ['Charlie']], [[['Delta'], ['Echo']], ['Foxtrot']]] 我想查看列表中的每个元素。 在任何层面上都是左右的情况 编辑:我创建这些列表的原因是:我发现它是记录元素之间父子关系的一种方便方法展平不适用于本例,因为它忽略了元素之间的关系 谢谢 注意:这里有几个类似的问题,但我很确定这不是一个重复因为展平列表不是一个选项,您可以递归地遍历列表 def traverse(
[[[['Alpha'], ['Bravo']], ['Charlie']], [[['Delta'], ['Echo']], ['Foxtrot']]]
我想查看列表中的每个元素。
在任何层面上都是左右的情况
编辑:我创建这些列表的原因是:我发现它是记录元素之间父子关系的一种方便方法展平不适用于本例,因为它忽略了元素之间的关系
谢谢
注意:这里有几个类似的问题,但我很确定这不是一个重复因为
展平
列表不是一个选项,您可以递归地遍历列表
def traverse(l):
for i,ele in enumerate(l):
if len(ele)>1:
traverse(ele)
else:
print(ele)
traverse(l)
#驱动程序值:
IN : l = [[[['Alpha'], ['Bravo']], ['Charlie']], [[['Delta'], ['Echo']], ['Foxtrot']]]
OUT :
['Alpha']
['Bravo']
['Charlie']
['Delta']
['Echo']
['Foxtrot']
如果您甚至想要列表元素的深度,只需将函数更改为:
def traverse(l, depth):
for i,ele in enumerate(l):
if len(ele)>1:
traverse(ele, depth+1)
else:
print(ele, depth+1)
traverse(l, 0)
#驱动程序值
OUT :
['Alpha'] 3
['Bravo'] 3
['Charlie'] 2
['Delta'] 3
['Echo'] 3
['Foxtrot'] 2
由于
展平
列表不是一个选项,因此可以递归地遍历列表
def traverse(l):
for i,ele in enumerate(l):
if len(ele)>1:
traverse(ele)
else:
print(ele)
traverse(l)
#驱动程序值:
IN : l = [[[['Alpha'], ['Bravo']], ['Charlie']], [[['Delta'], ['Echo']], ['Foxtrot']]]
OUT :
['Alpha']
['Bravo']
['Charlie']
['Delta']
['Echo']
['Foxtrot']
如果您甚至想要列表元素的深度,只需将函数更改为:
def traverse(l, depth):
for i,ele in enumerate(l):
if len(ele)>1:
traverse(ele, depth+1)
else:
print(ele, depth+1)
traverse(l, 0)
#驱动程序值
OUT :
['Alpha'] 3
['Bravo'] 3
['Charlie'] 2
['Delta'] 3
['Echo'] 3
['Foxtrot'] 2
如何处理?将在元素上迭代。。。以发电机为例。。。或者你的意思是你想处理这些列表…可能重复我为什么要创建这些列表列表:我发现它是一种记录元素之间父子关系的方法。展平在这种情况下不适用,因为它忽略了元素之间的关系。“否决票真的适用吗,@KaushikNP?原因是什么?”question@NickA递归地获取(并打印,例如)listprocess中的每个元素如何?将在元素上迭代。。。以发电机为例。。。或者你的意思是你想处理这些列表…可能重复我为什么要创建这些列表列表:我发现它是一种记录元素之间父子关系的方法。展平在这种情况下不适用,因为它忽略了元素之间的关系。“否决票真的适用吗,@KaushikNP?原因是什么?”question@NickA递归地获取(例如,打印)列表中的每个元素