问题 4965 --最热门IP(Python)

4965: 最热门IP(Python)★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 259  解决: 119
[提交][状态][命题人:]

题目描述

某搜索引擎网站一天的访问日志数据如图a所示,现要从中提取出访问网站次数最多的IP。

由于IP日志文件数据量非常大,我们可以把IP日志数据分别存储到多个小文件中,

分别统计出每个小文件中出现次数最多的IP地址及次数,

再对各个小文件中的数据进行汇总。

统计的结果如图b所示。

def showmax(ips): #统计出现次数最多的 IP 地址和出现次数
    dic={}
    maxn=0
    for i in range(len(ips)):
        if ips[i] in dic: 
            dic[ips[i]]+=1
            if _____(1)________: 
                maxn=dic[ips[i]]
                maxIp=ips[i]
        else:
            ______(2)________
    return maxIp,maxn
with open("temp.log",'r') as f: #读取小文件 temp.log 中的 IP 地址
    ips=[]
    for line in f:
         ip=line.split()[0]
         ips.append(ip) #将 IP 地址逐行追加到列表 ips 中
_____(3)________# 调用 showmax 函数
print("出现次数最多的IP是:",a[0]," 出现次数为:",a[1])

输入

输出

第1空的答案为__________

A. dic[i]>maxn       B. dic[ips[i]]>maxIp      C. dic[ips[i]]>maxn     D. dic[i]>maxIp

第2空的答案为__________

A. dic[i]=1        B. dic[i]=0       C. dic[ips[i]]=1      D. dic[ips[i]]=0

第3空的答案为__________

A.(a[0],a[1])=showmax(line)    B. (a[0],a[1])=showmax(ips)      C. a=showmax(line)      D.   a=showmax(ips)

不用提交代码,只需输出每个选项的答案,一共三行,每行一个大写字母

提示

输出格式如下:

print('B')

print('D')

print('A')

来源

[提交][状态]