效率比较低的思路,估计不入大佬法眼,思路比较清晰 第一步将路径和行号作为一个基本单元全都添加进数组 第二步去除重复单元做成一个索引 第三步根据索引,利用count函数计算出个数进行添加 最后输出最后8个,利用join函数。 具体代码如下:

``` python []
lst=[]#用于数组记录
lst1=[]#最后上数字的数组
#先把[File,N]以一个单元的形式都加进lst,不考虑冲不冲股份, 把他看成一个整体,后面有count函数帮我们计算个数
while True:
    try:
        PATH,N=map(str,input().split(" "))
        File=PATH.split("\\")[-1]#必须用两个\测试出来的
        if len(File)>16:#解决大于16位,就取后16位的情况。
            File=File[-16:]
        lst.append([File,N])
    except:
        break
#print(lst)
#去除重复,帮助我们用作索引,这种方法还有个好处,那就是由于lst是顺序进入的,所以索引也是顺序的
lsttemp=[]
for [i,j] in lst:
    if [i,j] in lsttemp:
        continue
    else:
        lsttemp.append([i,j])

#通过索引再把对应数字加上,count函数就是该题的关键,也是不先做处理直接添加进lst的原因
for i,j in lsttemp:
    lst1.append([i,j,lst.count([i,j])])#加上对应数字

for [i,j,t] in lst1[-8:]:#输出倒数8个
    print(" ".join([i,j,str(t)]))#最后用join函数输出
#print(lst1)