Seite 1 von 1

Erlaeuterung zu Beispielprogramm

Verfasst: Montag 17. März 2008, 15:51
von maxip
Hi,

auf wiki.python.de gibs folgendes Code-Beispie:

Code: Alles auswählen

import urllib
import re

def get_links(url):
    # Verbindung öffnen
    fp = urllib.urlopen(url)
    # Daten auslesen
    html = fp.read()
    # Regex anwenden und alle Gruppen suchen
    links = re.findall('<a.*?href="((http|ftp)s?://.*?)".*?>(?uism)', html)
    # Liste so manipulieren, dass nur noch das erste Element zurückgegeben
    # wird (also die 1. Gruppe)
    return [group[0] for group in links]

# alle links ausgeben
for link in get_links('http://www.python.org'):
    print link
Was bedeutet nun diese Zeile:

Code: Alles auswählen

return [group[0] for group in links]
Vielen Dank

ciao

Verfasst: Montag 17. März 2008, 16:02
von Leonidas
Das ist eine List Comprehension. Es wird durch die Liste durchgegangen und eine neue Liste erstellt, jeweils mit dem Inhalt von ``group[0]``. Quasi die Kurzfassung einer ``for``-Schleife.

Verfasst: Donnerstag 20. März 2008, 10:35
von sma
Die letzte Zeile wäre übrigens überflüssig, wenn dort als regulärer Ausdruck `..."((?:http|ftp)s?://.*?)"...` stände.

Stefan