首页 > 解决方案 > 如何在不使用 sorted 函数的情况下对字典进行排序?

问题描述

以下代码创建了一个包含字母表中每个字母的字典,以及每个字母在出现次数方面占文本的相对百分比。

我给出它是为了展示我试图在不使用“排序”或“集合”方法的情况下实现的结构。例如 print({k: v for k, v in sorted(mydict.items(), key=lambda item: item[1], reverse=True)}) 完美的作品,但这不是所需要的。

需要的是使用循环和重新排序字典中的项目的相同功能。

这是整个代码,有问题的项目开始于for i in range

def count_char(text, char):
    count = 0
    for c in text:
        if c == char:
            count += 1
    return count

filename = "newfile.txt"
with open(filename) as f:
    text = f.read()
mydict = {}
i = 0
j = 1
y = {}
alphabet = "abcdefghijklmnopqrstuvwxyz"
for char in alphabet:
    perc = 100 * count_char(text, char) / len(text)
    mydict.update({char: round(perc, 2)})

for i in range(len(alphabet)):
    for j in range(len(alphabet)):
        if list(mydict.values()).index(i) > list(mydict.values()).index(j):
            y.update({'0': dict.values[j]})
            mydict.update({mydict.values([j]): mydict.values([i])})
            mydict.update({mydict.values([i]): y.values([0])})
    j += 1
i += 1
j = i + 1

标签: pythonlistsortingdictionary

解决方案


推荐阅读