用python处理一含有300万条ip地址的文本,需得出每个ip在文本中重复的次数。得到一个ip , 次数的文本。
1个回答
展开全部
300万条不是很多。你可以使用字典,或者是Counter来统计。
通常来讲字典大小略大的时候,效率会很低。所以就要优化算法。
如果想避开字典限制的问题,可以使用redis来记数。速度慢些。但是很靠谱。
处理速度取决于进程数量,如果多进程处理,最后再将数据合并就会快很多。如果使用REDI就不用合并了。REDIS可以采用多进程加多线程方式。
如果还想更快就采用CYTHON,或者是直接用MAP REDUCE,采用多计算机同时处理。绝对快。
还有一个更简单快速的办法,用C语言吧。将IP地址转换成整数。然后用C语言来记数,绝对快。编程也简单。转成整数的方法对于PYTHON也有效。
通常来讲字典大小略大的时候,效率会很低。所以就要优化算法。
如果想避开字典限制的问题,可以使用redis来记数。速度慢些。但是很靠谱。
处理速度取决于进程数量,如果多进程处理,最后再将数据合并就会快很多。如果使用REDI就不用合并了。REDIS可以采用多进程加多线程方式。
如果还想更快就采用CYTHON,或者是直接用MAP REDUCE,采用多计算机同时处理。绝对快。
还有一个更简单快速的办法,用C语言吧。将IP地址转换成整数。然后用C语言来记数,绝对快。编程也简单。转成整数的方法对于PYTHON也有效。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询