在for循环中查找列表中最常见的对象

时间:2017-11-20 01:18:35

标签: python python-3.x twitter data-analysis

我很难打印出最受欢迎的网络链接,然后计算它出现的次数。相反,所有链接都打印出来,没有计算。我不确定我的代码中是否错误放置了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,因为它似乎什么也没做,但重复了网络链接。有什么想法吗?

1 个答案:

答案 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