python - 如何在不使用 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
解决方案
推荐阅读
- azure - Azure 市场映像中的虚拟机,带有错误的 terraform 脚本
- flutter - Flutter:如何使用钩子重建 UI 的特定部分?
- arrays - 为什么我的蛮力解决方案比优化的哈希表解决方案更快?
- javascript - 如何使用 if 语句根据 Laravel 中的选择下拉框更改输入类型值
- android - 如何使 RecyclerView 在 Android PopupWindow 中工作?
- windows - 用于识别桌面软件的独特元素是什么?
- ubuntu - Camunda平台tomcat服务器8080端口打开jenkins。以至于无法在我的 ubuntu 系统中运行 camunda 平台
- ios - “SFJHSFJ”团队没有帐号。在“帐户”首选项窗格中添加新帐户或验证您的帐户是否具有有效凭据
- typescript - 无法从 TypeScript 反射系统推断 GraphQL 类型。您需要为“地址”类的“id”提供显式类型
- uno-platform - 需要一些步骤将 UNO wasm 集成到 Angular 项目中