if语句的每个循环,保存到不同的variab

2024-04-25 01:50:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着计算一个文档中字母的频率,然后把它们分解成单独的变量,这样我就可以把它们转换成百分比。我遇到的问题是每次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)

任何帮助都将不胜感激,因为我有点不知所措。谢谢。你知道吗


Tags: ininfodataifmycount字母counter
3条回答

将每个char freq存储到一个hash(map)中,其中key是char本身,value是integer。遇到每个字符的增量整数值

要使用dict

def freq():
    info = input("File Name")
    filehandle = open(info, "r")
    data = filehandle.read().upper()
    char_counter = collections.Counter(data)
    result = {}
    for char, count in char_counter.most_common():
        if char in string.ascii_uppercase:
            s = (str(count))
            my_tokens = s.split("|")
            print(my_tokens)
            result[char] = my_tokens[0]

result = freq()
print(result)

可以使用dictionary,其中char是键,value是出现的次数,如下所示:

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

相关问题 更多 >