一致性程序的问题

时间:2017-07-29 20:44:36

标签: python

我遇到了需要为我的编程类创建的程序的困难。该类使用Python 3,分配是创建一个程序来读取文件并显示所述文件的索引。我遇到的问题是,当我通过程序运行文件时,它会计算程序中每个字符的数量而不是单词。这是我的计划:

<div class="right">
  <div>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</div>
  <div>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
</div>
<div class="left">
  <div>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</div>
  <div>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
</div>

2 个答案:

答案 0 :(得分:0)

首先,我并不完全确定你想要用

完成的事情。
with open(f) as file:
    [word for line in z for word in line.split()]

但该行没有做任何事情,因为它没有保存您在任何地方构建的列表,因此您可以删除它。

您的问题出在for word in z:。由于z = file.read()z存储了一个包含整个文件文本的字符串,这意味着当您遍历它(for word in z:)时,您需要将word设置为z中的每个字符。

您要做的是反复遍历z.split()的结果,它将为您提供z中的每个字,即for word in z.split()

答案 1 :(得分:0)

看起来你有点困惑自己。这是一种天真的,但却是教学方法。 (天真,因为它没有处理边缘情况和标点符号)。评论应该有助于了解正在发生的事情:

wordDict = {}

with open('file.txt') as file:
    for line in file:
        #line is one line in the file
        words = line.strip().split()
        #words is an array or words that were in line
        for word in words:
            #word is one word from the words array
            if word in wordDict:
                wordDict[word] += 1
            else:
                wordDict[word] = 1

如果file.txt看起来像这样:

  

Hello Hello你好你好你好你好   

上发生了什么事

你的wordDict看起来像这样:

{'Hello': 6, 'What': 1, 'is': 1, 'going': 2, 'on': 3}