新程序员在这里。原谅任何偶尔的白痴。
我正在尝试编写一个小函数来返回(任意大)嵌套列表中最深的列表。子列表包含元组和字符串。
例子:
L = ['o', ([], [(1, 'V'), (-1, 'C')]), ['o', ['o', (['prefers'], [(1, 'D'), (1, 'D'), (-1, 'V')]), ['o', (['the'], [(1, 'N'), (-1, 'D')]), (['beer'], [(-1, 'N')])]], ['o', (['the'], [(1, 'N'), (-1, 'D')]), (['king'], [(-1, 'N')])]]]
我意识到这非常难以解析。这就是嗯,为什么我要机器来做。
(如果你想知道,我是一名语言学家,这个列表定义了一个极简语法中句子的派生树。)我想要的是返回嵌入最深的列表,在这种情况下是 ['o', (['the'], [(1, 'N'), (-1, 'D')]), (['beer'], [(-1, 'N')])]]。这是我尝试过的(除其他外):
def get_deepest(L):
is_list = True
while is_list == True:
for e in L:
is_list = any(isinstance(e,list) for e in L)
get_deepest(e)
return e
这达到了递归限制。任何指针?这几天我一直在为此苦苦挣扎。
谢谢。