Chapter 10 tuplesn&Assignment

本文介绍了一种从邮件中提取时间戳,并使用Python进行计数及排序的方法。该过程涉及读取文件、字符串处理、字典操作以及列表排序等步骤。

这里写图片描述

code:

name = raw_input("Enter file:")
if len(name) < 1 : name = "mbox-short.txt"
handle = open(name)
lst2=list()
words=dict()
for line in handle:
    line=line.rstrip()
    if not line.startswith('From '):continue
    lst = line.split()[5].split(":")[0]
    lst2.append(lst)
for word in lst2:
    words[word]=words.get(word,0)+1
lst3=list()
for hour,time in words.items():
    lst3.append((hour,time))
lst3.sort()
for hour,time in lst3:
    print hour,time

这里提一下关于split()方法:

lst = line.split()[5].split(":")[0]

当你要split()两次的时候就这样,按“ ”split一次然后取第五个值也就是时间,得出结果如下:
这里写图片描述

然后再split(“:”)[0],得出的结果如下图:
这里写图片描述
关于dict.items()这个方法,它的返回值是字典的元组列表
其中每一个值是一个tuple。
然后在定义两个变量hour,time,建立lst3,通过sort()方法排序。

*
关于sort()这个方法:
一、
1、y=sorted(x):保持x原表顺序不变,将排序好后的x赋给y表。**
2、sort(reverse=True):首先这里是“=”,其次True的T一定要大写。

二、默认情况下sort是根据key值来排列的,所以如果要根据value排序的话写法如下。

for k,v in dict.items():
    lst.append((v,k))
lst.sort(reverse=True)
for v,k in lst
    print k,v
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值