【发布时间】:2019-07-29 16:12:26
【问题描述】:
我有一个 Python 脚本,用于保存 reddit 帖子和每个帖子的前 40 个顶级 cmets。帖子本身和 cmets 保存在两个不同的字典中。
在帖子字典中,我为每个帖子保存从 500 开始的索引值。我还想为每个帖子的每个评论保存索引值。换句话说,每个帖子的每条评论都应该有保存索引值。
在这种情况下,第一篇文章的每条评论的索引值为 500。第二篇文章的每条评论的索引值为 501。第三篇文章的每条评论的索引值为 502。以此类推.等等
索引值适用于帖子。问题在于 cmets。现在,发表 1 条评论 1 获得索引 500,发表 1 条评论 2 获得索引 501,发表 1 条评论 3 获得索引 502 等等。帖子 1 上的所有 cmets 需要有索引 500。帖子 2 上的所有 cmets 需要索引 501 等等.等等
index = 500
for submission in top_subreddit:
index +=1
topics_dict["title"].append(submission.title)
topics_dict["score"].append(submission.score)
topics_dict["id"].append(index)
topics_dict["url"].append(submission.url)
topics_dict["created"].append(submission.created)
topics_dict["body"].append(submission.selftext)
comments = submission.comments[:40]
for comment in comments:
if isinstance(comment, MoreComments):
continue
comments_dict["commentid"].append(index)
comments_dict["commentbody"].append(comment.body)
【问题讨论】:
-
你的代码不是已经正确了吗?你说你想为每条评论使用相同的索引值,看起来你正在这样做。有什么问题?你以一种奇怪的方式保存它(一堆并行列表),但它似乎是你想要的。我建议阅读有关
enumerate的内容(编写 Pythonic 循环并避免手动管理您的index值),但除此之外...... -
不,它不能正常工作。现在,发表 1 条评论 1 获得索引 500,发表 1 条评论 2 获得索引 501,发表 1 条评论 3 获得索引 503 等等。帖子 1 上的所有 cmets 需要有索引 500。帖子 2 上的所有 cmets 需要索引 501 等等.等等
-
虽然您的代码看起来已经正确,但我建议您使用
comments_dict[index].append(comment.body)而不是一本字典中的两个不同列表 -
@user715564:那么要么你的缩进错误(帖子和你的实际代码不同),要么你遗漏了相关代码。您只需在一个地方增加
index,每次提交一次;否则,您不会显示任何递增index的方式。
标签: python python-3.x loops for-loop