python - 您可以按字母顺序将字典键排序到列表变量中并使用特定输出进行打印吗?

标签 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

最佳答案

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))

请注意,您不需要此处调用 tuple() ;没有它,您将得到一个(更高效的)发电机。在本示例中,它的存在是为了让您能够轻松查看结果。

关于python - 您可以按字母顺序将字典键排序到列表变量中并使用特定输出进行打印吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52845567/

相关文章:

python - 如何将数据帧的第一行读取为数据行而不是标题

python - 如何使 tkinter 按钮与我的脚本交互?

python-3.x - 两个类仅在基类上不同

python - 从python列表中选择两个数字,其概率随着它们之间的相对距离而衰减

python - 如何将列表拆分为元组

python - 在 Python 中使用两个键从 MySQL 获取表作为字典

python - 使用 BeautifulSoup 删除 Python 中不需要的标签

python - 如何在Python中将视频分成4个相等的部分?

python - Pandas 通过重叠两个 DataFrame 中的范围进行合并

python - 如果给定一个整数列表和一个名为 x 的数字,如何递归返回列表中每个第 x 个数字的总和