[QUN] 2022-11-12 19:14 采纳率: 66.7%
浏览 11
已结题

PY4E C10 E10.1 使用字典统计消息数,通过在字典中创建一个元组的列表,并且排序。

问题遇到的现象和发生背景

Python for everybody Chapter10 Exercise 10.1
问题:修改以前的程序如下:读取和解析“From”行,并从行中找出地址。使用字典计算来自每个地址的消息数。
在读取了所有的数据之后,通过从字典中创建一个(count、email)元组的列表,打印出提交次数最少的地址。
然后按相反的顺序对列表进行排序,并打印出提交次数最多的地址。

示例:
Sample Line:
From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008

示例执行:

Enter a file name: mbox-short.txt

cwen@iupui.edu 5
Enter a file name: mbox.txt

zqian@umich.edu 195

文件:E:/mbox-short.txt
文件内部的部分内容:

From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008
Return-Path: postmaster@collab.sakaiproject.org
Received: from murder (mail.umich.edu [141.211.14.90])
by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
Sat, 05 Jan 2008 09:14:16 -0500

解答问题的代码
fname = input('Enter a file name:')
fhand = open(fname)

counts=dict()
for line in fhand:
    line=line.rstrip()
    # skip 'uninteresting lines'
    if line.startswith('From '):
        print(line)
        words=line.split()
        for word in words:
            if len(word) > 9:
                if word not in counts:
                    counts[word]=1
                else:
                    counts[word]+=1
print(counts)

lst=list()
for key,val in list(counts.items()):
    lst.append((key,val))

lst.sort(reverse=True)

for key,val in lst[:1]:
    print(key,val)
运行结果及报错内容
{'stephen.marquard@uct.ac.za': 2, 'louis@media.berkeley.edu': 3, 'zqian@umich.edu': 4, 'rjlowe@iupui.edu': 2, 'cwen@iupui.edu': 5, 'gsilver@umich.edu': 3, 'wagnermr@iupui.edu': 1, 'antranig@caret.cam.ac.uk': 1, 'gopal.ramasammycook@gmail.com': 1, 'david.horwitz@uct.ac.za': 4, 'ray@media.berkeley.edu': 1}

zqian@umich.edu 4
我疑惑的点:

①下面这行代码起什么作用?

lst.sort(reverse=True)

②为什么以下这二行代码的运行结果为:’zqian@umich.edu 4‘

for key,val in lst[:1]:
print(key,val)
我想要达到的结果

最多:(出现次数最多即可)
cwen@iupui.edu 5
最少:(出现次数最少即可)
wagnermr@iupui.edu 1

期盼得到您的回复!谢谢!
  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 11月20日
    • 修改了问题 11月12日
    • 修改了问题 11月12日
    • 创建了问题 11月12日

    悬赏问题

    • ¥15 如何制作永久二维码,最好是微信也可以扫开的。(相关搜索:管理系统)
    • ¥15 delphi indy cookie 有效期
    • ¥15 labelme打不开怎么办
    • ¥35 按照图片上的两个任务要求,用keil5写出运行代码,并在proteus上仿真成功,🙏
    • ¥15 免费的电脑视频剪辑类软件如何盈利
    • ¥30 MPI读入tif文件并将文件路径分配给各进程时遇到问题
    • ¥15 pycharm中导入模块出错
    • ¥20 Ros2 moveit2 Windows环境配置,有偿,价格可商议。
    • ¥15 有关“完美的代价”问题的代码漏洞
    • ¥15 请帮我看一下这个简易化学配平器的逻辑有什么问题吗?