我很难打印出最受欢迎的网络链接,然后计算它出现的次数。相反,所有链接都打印出来,没有计算。我不确定我的代码中是否错误放置了Counter
和.most_common(1)
。我把它贴在下面。
toplinks = []
for i in itb:
if "://" in i[1].lower() and '2015-11-16' in i[2].lower():
itb_links = [c for c in i[1].split(" ") if "://" in c.lower()]
##toplinks = collections.Counter(itb_links).most_common(1)
toplinks.append(itb_links)
for i in toplinks:
print ("Top web link: " , i[0] , i[1] )
我在for循环中注释掉了我的toplinks
,因为它似乎什么也没做,但重复了网络链接。有什么想法吗?
答案 0 :(得分:0)
我对你的itb
重建对象知之甚少,所以这里有一个简单的例子,展示了如何从列表中初始化Counter
。
import collections
import random
#generate some random links
links = ["http://go{}.invalid".format(random.randint(1, 20)) for _ in range(1000)]
link_counter = collections.Counter(links)
print(link_counter.most_common(3))
将打印出类似的内容:
[('http://go2.invalid', 59), ('http://go5.invalid', 59), ('http://go12.invalid', 57)]
有关详细信息,请参阅docs on collections。