【发布时间】:2012-04-14 03:16:06
【问题描述】:
我想编写一个程序,从文本文件中读取字母,忽略符号和空格,并按从最常见到最不常见的顺序打印每个字母的计数。
另外,我正在为我的第一个编程课做这个,所以我不允许使用计数器。
到目前为止我有这个:
name= raw_input("Enter file name:")
fl= open(name, 'r+').read()
lw= fl.lower()
ws= lw.replace(' ','')
sm= ws.translate(None, ",-!.;?:")
occ= {}
alpha= list ('abcdefghijklmnopqrstuvwxyz')
for x in alpha:
occ[x]= sm.count(x)
for x in occ:
print x, occ[x]
假设文本文件是这样的:“我对此非常困惑?”
然后程序将通过它的编程并执行此操作:“iamhighlyconfusedbythis”
但现在它只显示如下内容:
1 a
1 b
1 c
1 d
1 e
1 f
1 g
3 h
3 i
0 j
0 k
1 l
1 m
1 n
1 o
0 p
0 q
0 r
2 s
1 t
1 u
0 v
0 w
0 x
2 y
0 z
但我希望结果看起来像:
3 h
3 i
2 s
2 y
1 e
1 f
1 g
1 a
1 b
1 l
1 m
1 n
1 o
1 c
1 t
1 u
1 d
0 j
0 k
0 p
0 q
0 r
0 v
0 w
0 x
0 z
我使用的想法来自:
间谍
Determining Letter Frequency Of Cipher Text
SimplyZ
【问题讨论】:
-
塞缪尔,请清理一下。很难按原样阅读。
-
抱歉 Michael Petrotta 和 jamylak 我不小心拿错了程序,我只是编辑了它以放入正确的程序......这是我到目前为止得到的那个......再次抱歉......
-
@JoelCornett- 在某种程度上是的,在某种程度上不是......这不是我真正想理解的书中的分级练习......
-
您实际上不必制作一个 alpha 列表:
list('abc...xyz')如果您只是在for循环中使用该字符串,Python 将自动循环该字符串,一次一个字符.
标签: python