Python-Liste Iteration in One-Liner

Ich bin derzeit lernen Python.

Wie mache ich das:

dates = list()  
for entry in some_list:  
    entry_split = entry.split()    
    if len(entry_split) >= 3:  
        date = entry_split[1]
        if date not in dates:  
            dates.append(date)

in einem ein-Zeiler in Python?

  • lange one-Liner sind wahrscheinlich nicht das beste, was, Tauchen Sie ein in für Ihren ersten Tag in python.
  • Warum würden Sie wollen? Es kann getan werden, aber die 1-liner wird wahrscheinlich werden weniger effizient und schwieriger zu verstehen. 1-Liner sollte nur verwendet werden, wenn Sie erhöhen die übersichtlichkeit des Codes.
  • Könnte noch ein lecit Frage!
  • Ich Stimme mit @SlaterTyranus - was haben Sie sieht gut aus!
  • Liste Verstehens Häufig schneller als das erstellen einer Liste ein Element in einer Zeit, aber in diesem Fall nicht geeignet für eine aufgrund der Abhängigkeit vom teilweise erstellt Liste.
  • Für einmal, jeder scheint zu vereinbaren, um stick mit dem code, den ich habe. Tun und beachten diese Vorschläge. Vielen Dank Euch allen!
  • meiner Meinung nach if date not in dates bedeutet, es sollte nicht sein, ein Einzeiler.
  • Recht. In diesem Fall würden Sie brauchen, um split die Zeichenfolge, die mehrere Male aber das würde zu negieren alle Beschleunigungen würden Sie gewinnen aus der Liste-comp. In jedem Fall ist aber der primäre Grund für die Verwendung einer Liste-comp ist für die code-Klarheit, nicht die Geschwindigkeit.

InformationsquelleAutor dfernan | 2013-06-19
Schreibe einen Kommentar