2016-05-24 7 views
0

私はウェブサイトをスクラップし、トピックの著者が記載されている部分を取り出しました。著者を抽出した後、私は文字列のリストのリストを持っています。しかし、私は、文字列の1つのリストにこれを有効にするPythonは空の要素を除いてリストの最初の要素を反復処理します

authorlist=[] 
for post in topicsection: 
    authorlist.append(re.findall(r'<a href="/[Mm]ember.*?">(.*?)</a>', 
post)) 

>>>> [['author1'],['author2'],['author3']] 

。したがって、著者リストをループし、すべてのリストの最初の[0]要素をAuthorlistに追加しました。テキストに空のリストが表示されることがあり、エラーが発生することがあります。したがって、try-exceptコマンドを使用すると、空のリストは無視されます。

すべてのリストの最初の要素を抽出するようにPythonに指示できますが、空のリストがある場合はループを続行しますか?私は以下を試しました。例外部分は動作しません。

try: 
    authorlist = [lijst[0] for lijst in authorlist] 
except IndexError: 
    pass 

ありがとうございます!

答えて

2

あなたはあなたのリストの内包にリストの内包にフィルタリング条件を追加する

authorlist = [lijst[0] for lijst in authorlist if lijst] 
2

てみ条件文を持つことができます。authorlistがあるかどうかをチェックする必要があり

authorlist = [lijst[0] for lijst in authorlist if len(lijst) > 0] 
+0

これは本当にうまくいきました、ありがとうございます! – Tessa

1
authorlist = [lijst[0] for lijst in authorlist if lijst] 

を。お役に立てれば。

関連する問題