我有一段代码,它在一个文件中查找,每次从一个新的行中提取5000个单词。parsing
是我的变量,在这里它等于“经济学家”。如果“data”文件中的单词在parsing
内,则该单词将追加到输出列表中。在
问题是为什么单词'on'
和'no'
要重复追加?这种情况发生在其他一些短语上,而不一定是所有短语。单词'on'
和{
使用set有助于重复,但是有些单词在短语中重复,所以我就失去了它们。在
我将文件读入数据的代码:
data = [line.strip() for line in open("words.txt", 'r')]
output = []
for each in data:
if parsing != "" and each in parsing:
output.append(each)
样品:
^{pr2}$以及
phrase = timesonline # with this one 'in' gets repeated and not no
sortedout = ['online', 'online', 'time', 'line', 'line', 'son', 'in', 'on', 'so', 'me', 'in', 'on', 'so', 'in']
这是一个黑客等级的挑战。这是 数据文件,假设它在本地驱动器上,并且是挑战。在
当我这样做时[d for d in data if d == "on" ]
它返回多个“on”,不应该返回。在
您正在检查一个字符串是否在另一个字符串中:
if parsing != "" and each in parsing:
…所以如果},因为这些都是“economist”的子字符串。在
parsing
等于economist
,那么你的语句计算结果是True
,因为economist
,no
和{如果要匹配整个字符串,可以对照字符串列表检查项
^{pr2}$因此,重新编写代码(为了清晰起见,使用一个包含多个元素的列表):
编辑:},还有一次是{},就像你的结果一样。在
我同意你在评论中链接到的挑战中的文本意味着列表中的单词是唯一的,但它们不是。我刚刚做了一个非常简单的手动文本搜索,并计算了两次出现的
on
,其中五次是{相关问题 更多 >
编程相关推荐