![e013ad2d7c815dd40ab547b9fc8f2dcc.png](https://i-blog.csdnimg.cn/blog_migrate/38b7f1fd3b15a2bf42424bd772ece8cf.jpeg)
前言
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。
Step1:基础数据准备(通过爬虫获取到),以下是从第一期03年双色球开奖号到今天的所有数据整理,截止目前一共2549期,balls.txt 文件内容如下 :
![a07a0692c8e44b7f03900345abcb21cb.png](https://i-blog.csdnimg.cn/blog_migrate/dfddbcba0d82aa504bdca3d35b3e688b.png)
备注:想要现成数据的可以给我发邮件哟~
Step2: 分析数据特征和数据处理方式选择,直接上代码如下:
#导入Counter
from collections import Counter
def readfile():
red_lists=[]
blue_lists=[]
#打开文件并获取文件句柄
with open("./balls.txt", "r",encoding='utf-8') as fp:
#开始读取文件并返回一个list
list1=fp.readlines()
#遍历整个文件内容
for i in range(len(list1)):
#替换掉n的字符再按空格分隔
list2=str(list1[i]).replace("n","").split(" ")
for j in range(len(list2)):
if j==6:
#蓝球放入到blue_lists 列表中
blue_lists.append(list2[j])
else:
#红球放入到red_lists 列表中
red_lists.append(list2[j])
#Counter可以快速便捷的对某些对象做一些统计操作,这里是对列表里面的数据进行出现次数统计,返回一个tuple
red_count=Counter(red_lists)
blue_count=Counter(blue_lists)
#most_common可以用来统计列表或字符串中最常出现的元素并做排序,并返回一个list
k = red_count.most_common(len(red_count))
#输出出现频率最高的六个红球
print("the red ball:",k[:6])
l = blue_count.most_common(len(blue_count))
#输出出现频率最高的六个蓝球
print("the blue ball:",l[:6])
if __name__=="__main__":
readfile()
Step3:执行结果如下:
![501792c650d54fdaafe34af83f1981ab.png](https://i-blog.csdnimg.cn/blog_migrate/38ad522f0aaf60b6368ffdf1a4e5b33e.png)
Step4:执行结果验证:
![226b43a8e1b0d9ec1128b88c1df5604c.png](https://i-blog.csdnimg.cn/blog_migrate/bd0dcc0f4cc2493db568697d94d76965.png)
从官网获取的数据进行对比,一致性校验通过。
总结:python在数据处理方面有着非常强大的优势,其实早先用过Panda库也可以非常出色的完成双色球的数据统计,大家有兴趣的可以实验一下。
欢迎点击右上角关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不限于Python实战演练、PDF电子文档、面试集锦、学习资料等。