2016-05-24 169 views
0

我已经刮了一个网站,并检索了一个主题的作者陈述的部分。提取作者后,我有一个字符串列表:Python遍历列表的第一个元素,除了空元素

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

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

但是,我想把它变成一个字符串列表。因此,我打开了作者列表并将每个列表的第一个[0]元素附加到作者列表中。有时会在文本中出现空列表,这会导致错误。因此,我想使用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 = [lijst[0] for lijst in authorlist if len(lijst) > 0] 
+0

这的确很奏效,非常感谢! – Tessa

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

你应该检查authorlist是存在的。希望这可以帮助。