【发布时间】:2017-02-05 11:11:13
【问题描述】:
我正在运行一个循环来在我的列表(命名:文本)中附加包含任何(或所有给定标签)的句子,但是问题是我得到了重复的输出,因为循环在所有标签上运行一个用于识别。
如果我的句子中有任何标签(给定的 3 个标签),有没有办法附加该句子?目前,由于标签中的这个“for”循环(参见“当前输出”),我得到每个输出 3 次(参见“当前输出”),即总共 4*3=12 个输出而不是 4 个。 如果您看到我的“必需输出”,前 3 个句子在那里,因为它们包含一个或所有标签,最后一个显示为“未找到”,因为它不包含任何标签。
我的代码:
text=[]
tags=["_NN","_VB","_PRP"]
sentences =['Thanks_NNS sir_VBP','Oh_UH thanks_NNS to_TO remember_VB','Welcome_VB my_UH child_UH',"hi"]
for sentence in sentences:
for tag in tags:
if tag in sentence:
z = sentence.split(",")
k = " ".join(z)
text.append(k)
else:
text.append("Not found")
电流输出:
['Thanks_NNS sir_VBP',
'Thanks_NNS sir_VBP',
'Not found',
'Oh_UH thanks_NNS to_TO remember_VB',
'Oh_UH thanks_NNS to_TO remember_VB',
'Not found',
'Not found',
'Welcome_VB my_UH child_UH',
'Not found',
'Not found',
'Not found',
'Not found']
所需输出:
['Thanks_NNS sir_VBP',
'Oh_UH thanks_NNS to_TO remember_VB',
'Welcome_VB my_UH child_UH',
"Not found"]
【问题讨论】:
-
您需要的输出与您初始化的
sentence列表相同,除了'hi'替换为'Not required'。是吗? -
是的,没错,因为它不包含任何上述标签。
标签: python arrays string list text