0

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

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

先感谢您!

4

3 回答 3

2

您可以在列表理解中包含条件语句

authorlist = [lijst[0] for lijst in authorlist if lijst]
于 2016-05-24T08:28:07.603 回答
1

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

authorlist = [lijst[0] for lijst in authorlist if len(lijst) > 0]
于 2016-05-24T08:28:26.307 回答
1
authorlist = [lijst[0] for lijst in authorlist if lijst]

您应该检查作者列表是否存在。希望这可以帮助。

于 2016-05-24T08:29:37.237 回答