可能重复:
在 Python 中迭代时从列表中删除项目
我有一个相当嵌入的列表:具体来说,它是一个元组列表的列表。为简化起见,整个列表是一个句子列表。在每个句子中,每个单词都被组成一个元组,包含有关该单词的信息。每个句子中的最后一个元组包含有关说话者的信息,但如果需要,可以删除。
我想搜索这些元组,如果找到某个值,则删除整个句子。
这是一个示例列表:
sentenceList = [[('the', 'det', '1|2|DET'), ('duck', 'n', '2|3|SUBJ'), ('xxx', 'unk', '3|0|ROOT'), ('*MOT', 373)],
[('yyy', 'unk', '1|0|ROOT'), ('*CHI', 375)],
[('what', 'pro', '1|2|OBJ'), ('happen-PAST', 'v', '2|0|ROOT'), ('to', 'prep', '3|2|JCT'), ('the', 'det', '4|5|DET'), ('duck', 'n', '5|3|POBJ'), ('*MOT', 378)],
[('boom', 'int', '1|0|ROOT'), ('*CHI', 379)]]
如果一个句子包含'xxx'
or 'yyy'
,我想删除整个句子。我试过的代码是:
wordList = ['xxx','yyy']
for sentence in sentenceList:
for wordTuple in sentence:
for entry in wordTuple:
if entry in wordList:
del sentence
这应该删除整个句子,即:
[('the', 'det', '1|2|DET'), ('duck', 'n', '2|3|SUBJ'), ('xxx', 'unk', '3|0|ROOT'), ('*MOT', 373)], [('yyy', 'unk', '1|0|ROOT'), ('*CHI', 375)]
但是,这段代码似乎没有完成任务。知道如何解决吗?谢谢!