如何指定要在字符串中查找哪些字母?

时间:2015-10-02 09:04:42

标签: python python-3.x

import string

fhand = open('romeo-full.txt')
dic = {}
no_digits = []
for line in fhand:
    line = line.lower() #makes the lines all lower case
    line = line.translate(str.maketrans('','',string.punctuation)) #remove punctuation from each line
#   line = line.strip() #strips exces spaces from both ends of the line
    for letter in line: 
        if not letter.isdigit() and letter != ' ': #if letter == (a-z), how ?
            no_digits.append(letter)


for i in no_digits:
    dic[i] = dic.get(i, 0) + 1 #

lst = []
for key, value in dic.items():
    lst.append((value, key))

lst.sort(reverse = True)
for i in lst:
    print (i)

因此,在上面的代码中,我试图从给定文件中提取' a-z' 之间的所有字母,然后显示每个字母的出现次数这些字母的顺序从最大值到最低值。我面临的问题是,我目前列出了文件中不需要查找的所有异常(字符串)。我首先说不要包含数字,然后不要包含空格,在此之前我已指定从文件中删除标点符号。

所以我的问题是,我能做得更好,所以不要说什么不包括,而不是写英文字母中的每个字母,如果问题只包括来自(az)的字母因此,使代码与使用非英语符号的文件一起使用(很明显,这是错误的,因为它会忽略任何其他类型的字母,但至少它是某种类型的例外)。

我还没有学过列表推导(我在编程方面仍然是一个小孩)而且我知道我可以通过在某些地方使用列表理解来优化我的代码但是现在我限制自己不要使用它们,直到我将来覆盖它们并习惯于先做正常的事情。

0 个答案:

没有答案