如何使程序在单词和大写字母上有所区别?

时间:2013-07-31 11:43:45

标签: python

我的任务是编写一个计算文本中唯一单词的程序。我有一个代码计算每个单词出现的次数。但我的代码不区分小写和大写字母。我需要一个代码来计算单词(例如)“我们”和“我们”作为不同的单词,而不是相同。这是我的代码

import string
import sys
words = {}
strip = string.whitespace + string.punctuation + string.digits +  "\"'"
filename = 'input.txt'
for line in open('input.txt'):
    for word in line.lower().split():
      word = word.strip(strip)
        if len(word) >= 1:
            words[word] = words.get(word, 0) + 1
for word in str.split(''):
    print word
for word in sorted(words):
    print("{0} {1} ".format(word, words[word]))

3 个答案:

答案 0 :(得分:1)

 for word in line.lower().split():

表示将每个字符转换为小写等效字符,然后将其拆分为空格。如果您不想不区分大小写,那么

 for word in line.split():

答案 1 :(得分:0)

删除lower()中的line.lower().split()来电。它会使你的算法区分大小写。

答案 2 :(得分:0)

有更好的方法可以将所有文本设置为小写,并使用Counter查看单词的数量来查看:

http://docs.python.org/2/library/collections.html#counter-objects

它会更强大,它会阻止你使用很多循环