Python:递归地遍历列表和子列表,并删除某些元素或子列表

Python:递归地遍历列表和子列表,并删除某些元素或子列表,python,python-2.7,recursion,Python,Python 2.7,Recursion,我擅长Python。我想在Python2.7中使用递归函数和内置函数实现以下功能 要运行的输入列表: [['P', 'Q'], [['not', 'P'], 'R'], [['not', 'R'], ['not', 'P']], [['not', 'Q'], 'S', ['not', 'T']], ['T']] 由于“S”在列表中没有恭维词[“not”,“S”],所以删除包含“S”的子列表 [['P', 'Q'], [['not', 'P'], 'R'], [['not', 'R'], ['n

我擅长Python。我想在Python2.7中使用递归函数和内置函数实现以下功能

要运行的输入列表:

[['P', 'Q'], [['not', 'P'], 'R'], [['not', 'R'], ['not', 'P']], [['not', 'Q'], 'S', ['not', 'T']], ['T']]
由于“S”在列表中没有恭维词[“not”,“S”],所以删除包含“S”的子列表

[['P', 'Q'], [['not', 'P'], 'R'], [['not', 'R'], ['not', 'P']], ['T']]
现在“Q”在上面的列表中,并且没有恭维词[“not”,“Q”],所以删除包含“Q”的子列表

[[['not', 'P'], 'R'], [['not', 'R'], ['not', 'P']], ['T']]
现在['not','p']在上面的列表中,并且没有恭维词'p',所以删除包含['not','p']的子列表

[['T']]
由于“T”在上面的列表中没有恭维词[“not”,“T],所以删除包含“T”的子列表

[]
这应该在递归完成后返回。有人能建议我如何有效地实现这一点吗


谢谢

在第3种情况下,['not','p']在重复2次时是如何唯一的?['not','p']没有恭维词'p',因此应该删除它。谢谢你的更正。我编辑了这个问题,有人能建议怎么做吗?