2016-05-24 4 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 есть. Надеюсь это поможет.