在python中,如何根据列表中的元素拆分列表?

在python中,如何根据列表中的元素拆分列表?,python,Python,我有这样一个字符串列表:[['ROOT','S'],['S','NP',')','VP',')'],['NP','DT','NN'] 我希望每当列表中遇到)时,它应该将其拆分到另一个内部列表中,而不是),将'添加到所形成的两个新列表中。与上面的示例一样,有两次出现)“,因此我希望输出如下所示: [['ROOT', 'S'], ['S', 'NP', ' '], [' ', 'VP', ' '], [' '], ['NP', 'DT', 'NN']] 如何做到这一点 L = [['ROOT',

我有这样一个字符串列表:
[['ROOT','S'],['S','NP',')','VP',')'],['NP','DT','NN']

我希望每当列表中遇到
时,它应该将其拆分到另一个内部列表中,而不是
,将
'
添加到所形成的两个新列表中。与上面的示例一样,有两次出现
)“
,因此我希望输出如下所示:

[['ROOT', 'S'], ['S', 'NP', ' '], [' ', 'VP', ' '], [' '], ['NP', 'DT', 'NN']]
如何做到这一点

L = [['ROOT', 'S'], ['S', 'NP', ')', 'VP', ')'], ['NP', 'DT', 'NN']]

answer = []
for subl in L:
    temp = []
    for elem in subl:
        if elem != ")":
            temp.append(elem)
            continue
        temp.append(' ')
        answer.append(temp)
        temp = [' ']
    answer.append(temp)
输出:

In [4]: answer
Out[4]: [['ROOT', 'S'], ['S', 'NP', ' '], [' ', 'VP', ' '], [' '], ['NP', 'DT', 'NN']]

列表
转换为
字符串
。根据您的喜好进行替换。然后使用
ast
包将
字符串
转换回数据结构(本例中为列表),前提是字符串格式正确。演示:

>>> import ast
>>> lst=[['ROOT', 'S'], ['S', 'NP', ')', 'VP', ')'], ['NP', 'DT', 'NN']]
>>> lst=str(lst)
>>> lst=lst.replace('\')\'','\' \'], [\' \'')
>>> lst=ast.literal_eval(lst)
>>> lst
[['ROOT', 'S'], ['S', 'NP', ' '], [' ', 'VP', ' '], [' '], ['NP', 'DT', 'NN']]

如果您写一些评论并解释实际情况,可能会有所帮助happening@PadraicCunningham:那/会/有帮助。但是我今天生病了(因此我很少出席)。我想我仍然可以通过提供/一些/代码来提供帮助。另外,SO上的所有帖子都在CreativeCommons下,所以我想其他人也可以贡献自己的力量。。。