Python 打印不同的值

Python Print Distinct Values

使用 Python 2.7 中的 Tweepy 将搜索查询的结果存储到 CSV 文件中。我想弄清楚如何从我的结果集中打印唯一 tweet.ids 的数量。我知道 (len(list)) 有效,但显然我没有在这里初始化列表。我是 python 编程的新手,所以解决方案可能很明显。任何帮助表示赞赏。

for tweet in tweepy.Cursor(api.search, 
                q="Wookie", 
                #since="2014-02-14", 
                #until="2014-02-15", 
                lang="en").items(5000000):
    #Write a row to the csv file
    csvWriter.writerow([tweet.created_at, tweet.text.encode('utf-8'), tweet.favorite_count, tweet.user.name, tweet.id])
    print "...%s tweets downloaded so far" % (len(tweet.id))
csvFile.close()

您可以使用 set 来跟踪您目前看到的唯一 ID,然后打印:

ids = set()
for tweet in tweepy.Cursor(api.search, 
                q="Wookie", 
                #since="2014-02-14", 
                #until="2014-02-15", 
                lang="en").items(5000000):
    #Write a row to the csv file
    csvWriter.writerow([tweet.created_at, tweet.text.encode('utf-8'), tweet.favorite_count, tweet.user.name, tweet.id])
    ids.add(tweet.id) # add new id
    print "number of unique ids seen so far: {}".format(len(ids))
csvFile.close()

集类似于列表,只是它们只保留唯一的元素。它不会向集合中添加重复项。