我正在尝试采用文档中字母的频率,然后将它们分成单个变量,以便将它们转换为百分比。我遇到的问题是,每次if语句执行时,变量var1都会被重写...我不确定如何将26个字符的频率分别写入单独的变量中,这样我就可以将它们转换成百分比,并分别使用每个百分比。
这是我的代码,并且var1最终打印为文件中的最后一个或最不常见的字母:
def freq():
info = input("File Name")
filehandle = open(info, "r")
data = filehandle.read().upper()
char_counter = collections.Counter(data)
for char, count in char_counter.most_common():
if char in string.ascii_uppercase:
s = (str(count))
my_tokens = s.split("|")
print(my_tokens)
global var1
var1 = my_tokens[0]
freq()
print(var1)
任何帮助将不胜感激,因为我对所做的事情有点不知所措。谢谢。
您可以使用dictionary
char是键,值是出现次数的位置,如下所示:
import collections
def freq():
var1 = dict()
info = input("File Name")
filehandle = open(info, "r")
data = filehandle.read().upper()
char_counter = collections.Counter(data)
for char, count in char_counter.most_common():
if char in data.upper():
s = (str(count))
my_tokens = s.split("|")
print(my_tokens)
var1[char] = my_tokens[0]
return var1
var1 = freq()
print(var1)
您可以在http://www.tutorialspoint.com/python/python_dictionary.htm上阅读有关字典使用的更多信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句