python - 从字典创建列表
问题描述
我正在尝试自学python,所以如果问题本身没有多大意义,我深表歉意。
我正在做我正在参加的 Python 在线入门课程的示例,提示是编写代码以读取文件并查找所有电子邮件,然后将它们添加到字典中,然后打印出发送最多的人电子邮件和他们发送的号码。我的问题是提示特别要求通过以相反顺序对列表进行排序来完成此操作。
我设法通过解析名称,然后计算每次弹出的名称,然后找到最大值并在 for 循环中使用相应的键打印出来,就得到了相同的最终结果。但是我不确定这是否是我应该做的,或者这本书是否要求别的东西。字典本身算作列表吗?
for k,v in di.items():
if largest_so_far ==-1
largest_so_far = v
elif v > largest_so_far :
largest_so_far = v
the_word = k
print(the_word,largest_so_far)
这是我用来打印姓名电子邮件的人的代码。我试着改变
for k,v in di.items():
进入
for k,v in reversed(di.items()):
为了尝试并至少以相反的顺序打印出来,但代码运行正常,没有任何更改或问题。
再次,如果这没有多大意义,我深表歉意。我几乎完全是自学成才(只能观看预先录制的视频和阅读教科书),并且仍在努力获得对这种语言的基本理解。
解决方案
所写的循环将始终以字典for
中最大的任何内容结束。v
因此,reversed(...)
它只会更改检查字典所有元素的顺序,但通常不会更改您在 print() 语句中看到的内容。
将语句放在for
循环中可能有助于您的调试,例如,print(word, largest_so_far)
在块之后立即elif
缩进并缩进与elif
.
(我假设您largest_so_far = -1
在循环之前有一个语句for
。考虑将其更改为largest_so_far = None
然后if not largest_so_far:
在 for 循环中使用。)
推荐阅读
- c# - HTTPClient Post 返回错误请求 400
- python - Python-can - can.Logger 监听器问题
- android - Android Studio 谷歌地图无法加载
- html - 如何从我的主域的任何子域提供相同的静态内容?
- c++ - 类内的模板方法返回一个未定义的引用
- node.js - 有没有办法在node.js中使用带有读取流的ffprobe(fluent-ffmpeg)输入?
- firebase - 通过 #onNewToken 和 #getToken 检索的令牌之间的区别
- amazon-web-services - Amazon SageMaker:客户错误:二进制文本分类的训练未成功完成
- javascript - 由 js 发出的 php 文件上传信号
- mysql - 如何在 python 3 中将类对象列表“保存”到我的程序中?