能否将字典键按字母顺序排序到列表变量中并使用特定输出进行打印?

时间:2018-10-17 00:08:11

标签: python python-3.x

以下内容为我提供了按正确格式显示的键和值的字母列表,但是有一种方法可以将按字母顺序排列的键和值迭代到列表变量中,并打印出列表,以便输出看起来完全相同如下面的输出所示?我已经复习了一些类似的问题;我仍然不确定sort()是否实际上创建了一个列表变量,如果我愿意的话,可以对它进行进一步的操作。

def readFile(fileName):
    fileIn = open(fileName, "r")
    letterFrequency = {}
    for line in fileIn:                             
        line = line.strip()
        for letter in line:
            if letter.isalpha() is True:         
                if letter not in letterFrequency:      
                    letterFrequency[letter.lower()] = 1
                else:                                  
                    letterFrequency[letter.lower()] += 1
            else:
                pass
fileIn.close()
return letterFrequency

def main():
    fileName = input("What is the name of the file? ")
    letterDict = readFile(fileName)      
    for letter in sorted(letterDict):
        print(letter, letterDict[letter])



main()

以上输出:

a 102
b 11
c 31
d 58
e 165
f 27
g 2
h 80 
i 17
k 3
l 42
m 13
n 63
o 93
p 15
q 1
r 79
s 44
t 60
u 21
v 24
w 21
y 10

2 个答案:

答案 0 :(得分:1)

Var example = Nav.Document.GetElementsByTagName("span");

请注意,您不需要在这里进行d = {"a": 5, "n": 2, "z": 1, "c": 3, "b": 0} t = tuple((k, d[k]) for k in sorted(d.keys())) print(t) # (('a', 5), ('b', 0), ('c', 3), ('n', 2), ('z', 1)) 呼叫;没有它,您将获得一个(更高效的)生成器。在此示例中可以轻松查看结果。

答案 1 :(得分:0)

我创建了一个列表,对列表进行了排序,然后从字典中打印出来,从已排序的列表中拉出了键名。现在,关于效率,必要性等,这超出了我的知识范围。

这是我解决问题的方式:

def readFile(fileName):
    fileIn = open(fileName, "r")
    letterFrequency = {}
    for line in fileIn:                                         
        line = line.strip()
        for letter in line:
            if letter.isalpha() == True:                        
                if letter.lower() not in letterFrequency:       
                    letterFrequency[letter.lower()] = 1
                else:                                          
                    letterFrequency[letter.lower()] += 1
            else:
                pass
    fileIn.close()
    return letterFrequency


def sortKeys(dictionary):
    listNew = list(dictionary)
    listNew.sort()
    return listNew


def main():
    fileName = input("What is the name of the file you are trying to process? ")
    letterDict = readFile(fileName)    
    listNew = sortKeys(letterDict)
    for key in listNew:
        print(key, letterDict[key])


main()