使用循环和列表制作单词索引

时间:2017-01-09 09:48:26

标签: python loops indexing

fhand = open ("foodtips.txt", 'r')
fhand1 = open ("foodtips.txt", 'r')

count = 0

lines = fhand.readlines()

fhand_text = fhand1.read()

fhand_text1 = fhand_text.replace (".", "")
fhand_text2 = fhand_text1.replace (",", "")
fhand_text3 = fhand_text2.replace ("'", "")
fhand_text4 = fhand_text3.replace ("(", " ")
fhand_text5 = fhand_text4.replace (")", " ")
fhand_text6 = fhand_text5.replace ("-", " ")
fhand_text7 = fhand_text6.lower().strip()
fhand_text8 = fhand_text7.split()

wordlist = list(set(fhand_text8))


for i in range (len(lines)) :
    appeartimes = []
    for word in wordlist :
        if word in lines [i] :
            appeartimes.append(i)
        print word, appeartimes

大家好。我是Python的新手,目前正在学习必修课的基础知识。但是,在期末考试中得到零分之后,我想问你这个代码有什么问题我试图解决,在一个问题上花了5个小时。

预期答案如下:

be = [34, 48, 66, 128, 220, ...]
the = [10, 12, 24, 33, 66, ...]
as = [1, 55, 88, ...]

我在这个问题中要解决的具体问题如下:

  1. 删除所有代词。
  2. 删除所有结果超过5次
  3. 然而,更不用说,我甚至都没有得到最初的代码来运行,因为它循环了几十万次,使应用程序变得疯狂。

    非常感谢任何解决问题的想法。

1 个答案:

答案 0 :(得分:0)

我想我找到了一些东西。

wordlist = list(set(fhand_text10))
wordlist.sort()

for word in wordlist :
    appeartimes = []
    count = 0
    for i in range(len(lines)) :
        if word in lines [i] :
            count = count + 1
        if count > 5 :
            continue
        else:
            appeartimes.append(i+2)

if 5 > len(appeartimes) > 0 :
    print word, appeartimes

这给了我一个单词索引列表:

'Word' [row_number1, row_number2, row_number3]

但我还是找不到如何在单词列表中找到确切的单词。例如,它仍然在'vegetable'中找到'able',而re.match或re.search似乎不适用于单词列表。