Open Source im professionellen Einsatz

Newsletter abonnieren
Seite durchsuchen

HEFTARCHIV | NEWS | E-BIBLIOTHEK | VIDEO | BLOGS | WHITEPAPER | EVENTS | ACADEMY | ABO | SHOP

user friendly

  Home  »  Online Artikel  »  leser_sprachen  

RSS-Feed der aktuellen News von Linux-Magazin Online Folgen Sie Linux-Magazin Online auf Twitter
Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark

Python

Mehrere Leser haben uns auf ein Problem der Python-Lösung aus dem Heft (Linux-Magazin 10/2008, S, 36, Listing 4) hingewiesen. Unter anderem schrieb uns Julian Andres Klode: "Das einzige Problem, dass ich erkennen kann, ist die Funktion "nodups()" welche einfach zu langsam ist, da dort wiederholt überprüft wird, ob ein Element in einer Liste vorhanden ist. Solche Checks sind einfach sehr langsam." Damit meint er den folgenden Code-Abschnitt:

def nodups(lst):
  new = []
  for x in lst:
    if x not in new:
      new.append(x)
  return new

Glücklicherweise reichte der Leser auch gleich einen Verbesserungsvorschlag ein:
"Ich habe eine Version angehängt, die ohne "nodups()" auskommt, da die Funktion mkMap() so verändert ist, dass sie die doppelten Werte ignoriert."

def mkMap(lst):
        ret = {}
        n = 1
        for ref in lst:
                if not ref in ret:
                        ret[ref] = "[%d]" % n
                        n+=1
        return ret

Das komplette Listing steht zum Download bereit.

Einen anderen Weg ging Uwe Hoffmann, der in seinem Quelltext die kritisierte "nodups()"-Funktion selbst verbesserte:

def nodups(lst):
    new = set()
    lst.reverse() # es soll aus Originalliste gelöscht werden
    for ind in xrange(len(lst)-1,0,-1): 
        x=lst[ind]
        if x not in new:
            new.add(x)
        else:
            del lst[ind] # das Duplikat wird aus der Originalliste entfernt
    lst.reverse() # und wieder zurück zur originalen Reihenfolge
    return lst

Beide Programme lesen die Daten über die Standardeingabe ein: "footnotes.py < input.txt". Daneben besitzen sie die Option "--test", die das Programm mit den kurzen Beispieldaten der Aufgabenstellung ausführt, die die Entwickler eingebunden haben.

Ein weiterer Lösungsvorschlag stammt vom Entwickler Stefan Schwarzer, der auch schon Python-Artikel im Linux-Magazin veröffentlicht hat. Er schreibt über sein Programm: "Seit es in Python möglich ist, direkt mit 'for line in file' über die Zeilen eines Dateiobjekts zu iterieren, verwende ich die zeilenweise Verarbeitung ohne komplettes Einlesen in den Speicher, wenn nichts dagegen spricht." Sein Skript steht hier zum Download bereit.

Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark
Ähnliche Artikel
Django-Video-Workshop von Douglas Napoleone Django-Video-Workshop von Douglas Napoleone
Mit Frischesiegel Der aufgeräumte Weg zu GTK+ 3.0
Preise, Patente, Perl Oscon 2006 in Portland, Oregon
Ziemlich verteufelt Report: FreeBSD - Historie, Kernel, Lizenzen, Software, Philosophie
Asyl für Django Webprogrammierung in Python/Django und PHP
Linux-Däumling Open WRT auf dem Ben Nanonote
Whitepaper
Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele

Über die letzten Jahre hinweg haben sich Open Source Lösungen als fester Bestandteil des gesamten Datenintegrationsmarktes etabliert. Viele Unternehmen haben bereits das Open Source Modell für Ihre Datenintegrationsprojekte aufgegriffen. Das vorliegende White Paper illustriert anhand ausgewählter Fallstudien und Anwendungsbeispiele die Implementierung von Open Source Datenintegration in der Praxis und benennt die daraus resultierenden Vorteile.

Download PDF (Registrierung erforderlich)
The Role of Open Source in Data Integration

Obwohl in den letzten Jahren viele technische Fortschritte erzielt werden konnten, verfügen die meisten Datenintegrationsprozesse nach wie vor nur über eine sehr begrenzte Automatisierung. Das vorliegende White Paper von dem Industry Analyst Mark Madson wird zunächst ein grundlegendes Verständnis von Daten Integration vermitteln, die Vorzüge von Open Source Lösungen für Daten Integration erläutern und Ihnen professionelle Empfehlungen geben, damit Sie Ihre Integrationsjobs noch einfacher und produktiver gestalten können.

Download PDF (Registrierung erforderlich)
Kommentare (0)