Python - 计算单词而不使用内置函数或导入库

时间:2018-04-23 22:51:34

标签: python

我在完成这项任务时遇到了麻烦......我正在尝试计算文本文件中多个单词的出现次数。

#most common word
fh = open("romeo.txt")
master_list = fh.read().split()
print(len(master_list))
compare_list = []
count_list = []
for word in master_list:
    if word not in compare_list:
        compare_list.append(word)
        count_list.append(1)
    else:
        for rw in range(len(compare_list)):
            for r in master_list:
                if compare_list[rw] == r :
                    count_list[rw] += 1

print(len(count_list))
print(count_list)

这是来自文本文件romeo(dot)txt的数据 但柔和通过窗户打破的光线 它是东部,朱丽叶是太阳 太阳公平,杀死羡慕的月亮 谁已经病了,悲伤苍白

2 个答案:

答案 0 :(得分:0)

您可以尝试使用dictionary而不是列表。当你看到每个单词时,检查它是否在字典中,如果没有添加,则增加它的值。

答案 1 :(得分:0)

我认为你的问题在这个块中

    if word not in compare_list:
        compare_list.append(word)
        count_list.append(1)
    else:
        for rw in range(len(compare_list)):
            for r in master_list:
                if compare_list[rw] == r :
                    count_list[rw] += 1

else中找到word时执行compare_list子句。所以行为应该是找到它的索引,然后在count_list中递增相应的索引 - 你首先迭代compare_list的索引,这是好的,但不是将它与当前{{1你通过word开始另一次迭代。取出master_list循环,然后将for r in master_list:compare_list[rw]进行比较,我想你会到达那里。

正如其他人所指出的那样,word将是一个更好的存储结果的结构 - 但很难从你的问题中判断这是否“违反规则”。