2016-05-24 9 views
0

Ich habe eine Website gekratzt und den Teil abgerufen, in dem der Autor eines Themas angegeben ist. Nachdem die Autoren extrahieren, habe ich eine Liste von Listen von Strings:Python iteriert über die ersten Elemente einer Liste mit Ausnahme leerer Elemente

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

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

Allerdings möchte ich diese in eine Liste von Strings drehen. Daher habe ich die Autorliste durchgeschleift und das erste [0] Element jeder Liste an die Autorenliste angehängt. Manchmal erscheint eine leere Liste im Text, die einen Fehler verursacht. Ich möchte daher den Befehl try-except verwenden, bei dem die leeren Listen ignoriert werden.

Wie kann ich Python sagen, das erste Element jeder Liste zu extrahieren, aber die Schleife fortsetzen, wenn es eine leere Liste gibt? Ich habe folgendes versucht, bei dem der Ausnahmeteil nicht funktioniert:

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

Vielen Dank im Voraus!

Antwort

2

Sie können eine bedingte Anweisung in Ihrer Liste Verständnis haben

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

Versuchen Sie, eine Filterbedingung in die Liste Verständnis Zusatz:

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

Das hat in der Tat funktioniert, vielen Dank! – Tessa

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

Sie überprüfen sollten, ob die Author da ist. Hoffe das hilft.

Verwandte Themen