1. 应用“分治”思想,从某大型搜索引擎网站某天的访问日志数据文件(大数据集)中提取出访问该网站次数最多的IP。
(1) IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”。IP地址通常用“点分十进制"表示成a.b.c.d的形式,其中a,b,c,d均为0~255之间的十进制整数。如:点分十进制IP地址100.4.5.6,实际上是32位二进制数01100100.00000100.00000101.0000110。IP地址最多有种取值。
(2) IP日志数据量非常大,不能完全加载到内存中处理。可以采用“分治”思想,把IP日志数据分别存储到1024个小文件中,则每个小文件最多包含个IP地址的数据。
(3) 同时统计每个小文件中出现次数最多的IP地址和出现次数。若小文件中IP地址数据格式如图所示,统计小文件中出现次数最多的IP地址的Python代码如下,在方框中补充合适代码,完善程序。

file = open("1.log')

ips= []

for line in file:

    ip = line.split( )[0]    #split( )分割后,返回的列表中第一个值就是IP地址

    ips.append(ip)

def showmax(list):   #返回一个列表中出现次数最多的元素及其出现次数

print(showmax(ips))

(4) 汇总每个小文件中出现次数最多的IP地址和出现次数数据,可以得到至少个IP地址。对这些IP地址按出现次数排序或求最大值,最终得到总体上出现次数最多的IP。
【考点】
循环结构语句及程序实现;
【答案】

您现在未登录,无法查看试题答案与解析。 登录
综合题 普通
能力提升
真题演练
换一批