Python迭代除了空元素之外的列表的第一个元素

时间:2016-05-24 08:25:27

标签: python list loops empty-list

我抓了一个网站并检索了一个主题作者的部分。在提取作者之后,我有一个字符串列表列表:

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

提前谢谢!

3 个答案:

答案 0 :(得分:2)

您可以在列表理解中使用条件语句

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

答案 1 :(得分:1)

尝试向列表推导添加过滤条件:

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

答案 2 :(得分:1)

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

您应该检查作者列表是否存在。希望这会有所帮助。