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

被折叠的 条评论
为什么被折叠?



