当我使用索引访问我的列表时出现索引错误

I'm getting an index error when I use index to access my list

我已经开始使用 snscrape 为我的项目获取 Twitter 数据。我正在以列表格式输出数据并使用 pandas 来正确地可视化它。因为参与数据不是恒定的并且会持续更新。我正在尝试使用 for 循环和 if 语句来比较和更新它(如果需要)但是当我尝试使用索引访问列表中的特定属性时,如:

点赞、转发和回复计数

它给我一个索引错误。

脚本

#get data

import snscrape.modules.twitter as sntwitter
import pandas as pd 

tweets_list1 = []
for i, tweet in enumerate(sntwitter.TwitterSearchScraper('from:TheHoopCentral').get_items()):
    if i > 100:
        break
    tweets_list1.append([tweet.content, tweet.id,tweet.likeCount, tweet.retweetCount, tweet.replyCount, tweet.user.username])
    print(tweets_list1)

tweets_df1 = pd.DataFrame(tweets_list1, columns=['text', 'Tweet id','LikeCount', 'RetweetCount', 'ReplyCount', 'Username'])
tweets_df1.head()

#updating engagement

tweets_list1 = []
for i, tweet in enumerate(sntwitter.TwitterSearchScraper('TheHoopCentral').get_items()):
    if tweet.likeCount > tweets_list1[2]:
        tweets_list1.insert(2, tweet.likeCount)
    elif i > 100:
        break

错误

IndexError                                Traceback (most recent call last)
<ipython-input-26-c679f6d5eecc> in <module>
      3 tweets_list1 = []
      4 for i, tweet in enumerate(sntwitter.TwitterSearchScraper('TheHoopCentral').get_items()):
----> 5     if tweet.likeCount > tweets_list1[2]:
      6         tweets_list1.insert(2, tweet.likeCount)
      7     elif i > 100:

IndexError: list index out of range

在我看来,主要问题在于更新参与部分中 tweets_list1 的重新分配。

在执行循环逻辑

之前,您似乎正在将一个空列表分配给变量tweets_list1
tweets_list1 = [] # <-- Here
for i, tweet in enumerate(sntwitter.TwitterSearchScraper('TheHoopCentral').get_items()):
    if tweet.likeCount > tweets_list1[2]:
        tweets_list1.insert(2, tweet.likeCount)
    elif i > 100:
        break

然后,在第一个循环中,您将尝试访问空列表的第 3 个元素,从而导致错误。

tweets_list1 = []
for i, tweet in enumerate(sntwitter.TwitterSearchScraper('TheHoopCentral').get_items()):
    if tweet.likeCount > tweets_list1[2]: # <-- Here
        tweets_list1.insert(2, tweet.likeCount)
    elif i > 100:
        break