0

次のエラーが表示されます。

Traceback (most recent call last):
  File "C:\Python27\botid.py", line 23, in <module>
    fiList = {msg:submission.ups + len(coList)}
NameError: name 'coList' is not defined

このため:

wbcWords = ['wbc', 'advice', 'prc','server']
while True:
    subreddit = r.get_subreddit('MCPE')
    for submission in subreddit.get_hot(limit=30):
        op_text = submission.title.lower()
        has_wbc = any(string in op_text for string in wbcWords)
        # Test if it contains a WBC-related question
        if submission.id not in already_done and has_wbc:
            msg = '[WBC related thread](%s)' % submission.short_link
            comments = submission.comments
            for comment in comments:
                coList = [comment.author.name]
            fiList = {msg:submission.ups + len(coList)}
            print fiList

私には問題ないようです。検索結果は全部スペルミスになってしまうけど、私のは大丈夫みたい(願わくば)

4

3 に答える 3

2

最も簡単な解決策はリスト内包表記だと思います:

coList = [comment.author.name for comment in comments]

このようにして、コメントが空の場合は空のリストを取得し、それ以外の場合は作成者名を取得します。さらに、入力したものを考えると、それを呼び出す方が適切authors_listです。

于 2013-05-12T10:30:58.913 に答える
0

coList は、コメントが空でない場合にのみ定義されます。コメントが空の場合、coList は定義されないため、名前エラーが発生します。

また、ループの反復ごとに coList を再定義しているように見えますが、実際にはそれに追加したいのでしょうか?

于 2013-05-12T10:25:12.093 に答える
0

私はあなたが試してみるべきだと思います:

coList = []
for comment in comments:
    coList.append(comment.author.name)

あなたが試していたこと:

for comment in comments:
    coList = [comment.author.name]

すべてのコメントに対して、このループは colList を現在のコメント作成者名の単一の項目リストにリセットしていますが、あなたのコメントから、あなたがそれを理解していることがわかります。

リスト内包表記を含む他のコメントは、個人的には次のように使用する方がはるかに優れています。

colist = [comment.author.name for comment in comments]

1行がきれいに見え、意図が何であるか、コメント内の著者のリストを明確に読み取ることができます。

于 2013-05-12T10:25:25.963 に答える