我试图让我的代码从包含特定单词的文件中提取句子。我看到的代码如下:
import re
f = open('RedCircle.txt', 'r')
text = ' '.join(f.readlines())
sentences = re.split(r' *[\.\?!][\'"\)\]]* *', text)
def finding(q):
for item in sentences:
if item.lower().find(q.lower()) != -1:
list.append(item)
for sentence in list:
outfile.write(sentence+'\r\n')
finding('cats')
finding('apples')
finding('doggs')
但如果句子是:
'I saw doggs and cats eating apples'
有没有一种方法可以轻松地删除这些重复项,或者使代码在文件中不会有任何重复项?你知道吗
Python中几乎没有可以用来删除重复元素的选项(在本例中,我相信它的语句)。你知道吗
所有你需要做的,是收集在一个单一的列表中的结果,并使用在这个答案中提供的链接,以创建自己的食谱删除重复。你知道吗
另外,不要在每次搜索后将结果转储到文件中,而是将其推迟到删除所有重复项之后。你知道吗
很少有提示性变化
使用集合
将函数转换为生成器
链接每次搜索的结果
把结果传给集合
使用装饰器
如果顺序很重要
将装饰器更改为使用OrderedDict
注意
list
)首先,顺序重要吗? 第二,如果它们在原始文本文件中实际上是重复的,是否应该出现重复的内容?你知道吗
如果第一个为“否”,第二个为“是”: 如果重写该函数以获取搜索字符串列表并对其进行迭代(这样它就可以检查当前语句中每个要查找的单词),那么一旦找到它,就可以跳出循环。你知道吗
如果第一个是,第二个是, 在将项目添加到列表之前,请检查它是否已经存在。具体来说,记下您在原始文本文件中传递了哪些列表项,以及您将看到的下一个列表项。这样你就不必检查整个清单,只需检查一项。你知道吗
如果你对第一个问题回答“不”,对第二个问题回答“是”,那么阿比吉特建议的一套方法就可以奏效。你知道吗
相关问题 更多 >
编程相关推荐