我有一组日期:
dates1 = {'21/5/2015', '4/4/2015', '15/6/2015', '30/1/2015', '19/3/2015', '25/2/2015', '25/5/2015', '8/2/2015', '6/6/2015', '15/3/2015', '15/1/2015', '30/5/2015'}
相同的日期出现在文本中(从现在起'数据')。这是一篇很长的文章。我想循环文本并获得每个日期在文本中出现的次数,然后我打印出更多出现的5个日期。
我现在拥有的是:
def dates(data, dates1):
lines = data.split("\n")
dict_days = {}
for day in dates1:
count = 0
for line in lines:
if day in line:
count += 1
dict_days[day] = count
newA = heapq.nlargest(5, dict_days, key=dict_days.get)
print(newA)
我将tex分成行,创建一个dict,对于列表中的每个日期,它在每一行中查找它,如果它发现它将1添加到count。
这很好用,但是这个方法花了很多时间。
所以我要问的是,如果有人知道一种更有效的方法来完全相同的
任何帮助都将非常感激
修改
我会尝试每一个答案并让您知道,提前谢谢