python - 尝试编写代码,该代码采用列表并返回单词长度/该长度单词频率的表
问题描述
嗨,我正在尝试编写带有列表并返回单词/频率长度表的代码,但我不确定该怎么做。
到目前为止,这是我的代码,但它不起作用。非常感谢有关如何重组/使其工作的任何帮助
def table_frequency(new_list):
word_frequency = {}
max_word = len(max(new_list, key=len))
for i in range(1, max_word+1):
word_frequency[i] = 0
for word in new_list:
if len(word) in word_frequency:
word_frequency[len(word)] += 1
else:
word_frequency[len(word)] = 1
word_list = max(word_frequency.items(), key=(lambda x: x[0]))
print("\n Len Freq")
for length, freq in word_list:
print("{0:>4} {1:>4}".format(length, freq))
正确的表输出 任何帮助将不胜感激!
解决方案
一切都是正确的,但你打印错了。
word_frequency
正在存储您的单词长度和频率,因此您的最后一个 for 循环应该打印(不是word_list
)
for length, freq in word_frequency.items():
print("{0:>4} {1:>4}".format(length, freq))
但是,如果您想使用word_list
它自己,请使用word_list
字典中的键值对
word_list=[[k,v] for k,v in word_frequency.items()]
print("\n Len Freq")
for length, freq in word_list:
print("{0:>4} {1:>4}".format(length, freq))
另请注意,您不需要此 for 循环:
for i in range(1, max_word+1):
word_frequency[i] = 0
word_frequency[len(word)] = 1
因为当您在下一个 for 循环中说时,您会自动将每个长度添加到字典中
推荐阅读
- c++ - 在 C++ 中以编程方式更改 Windows 语言设置
- post - Google 应用脚本将数据发布到 SAOP 网络服务
- c++ - 我如何减少项目中的卷曲
- javascript - 使用 HTML 5 从移动浏览器访问照片
- drools - Drools 7.57.0.Final 中的模式匹配问题
- applescript - 如何«等到应用程序启动»applescript?
- python - 从集合列表中挑选元素以覆盖只有一个元素的所有集合
- amazon-web-services - AWS ECS 任务内存不足 - Cloudwatch 警报
- sql - 在 R 中工作 - dbReadTable 和 dbExistsTable 声称存在使用 dbWriteTable 编写的数据库表,但数据库中不存在该表
- ios - 找不到错误“模型的概述发布”的根本原因