Listenverständnis ohne Klammern: Generatorausdrücke
In Python ist es möglich, eine Liste von Elementen mithilfe von Listenverständnissen zu erstellen, die eine haben Syntax ähnlich wie Set Comprehensions, jedoch mit eckigen Klammern. Es ist jedoch auch möglich, das gleiche Ergebnis ohne die Verwendung von Klammern zu erzielen, was zu einer Konstruktion führt, die einem Generatorausdruck ähnelt.
Betrachten Sie das folgende Beispiel:
''.join([str(_) for _ in range(10)])
Dieser Code erstellt eine Liste von Zeichenfolgen, die die Zahlen von 0 bis 9 darstellen, und fügt sie mithilfe der Join-Methode zu einer einzigen Zeichenfolge zusammen. Interessanterweise liefert der folgende Code das gleiche Ergebnis ohne die Verwendung von eckigen Klammern:
''.join(str(_) for _ in range(10))
Der Grund für dieses Verhalten ist, dass der Code ohne Klammern einen Generatorausdruck darstellt, der einem Listenverständnis ähnelt, aber einen iterierbaren Ausdruck zurückgibt Objekt anstelle einer Liste. Generatorausdrücke sind speichereffizienter und schneller als Listenverständnisse, da sie nicht die gesamte Liste im Speicher erstellen.
Im Fall der Join-Methode ist die Verwendung eines Listenverständnisses jedoch effizienter, da Join funktioniert effizienter auf tatsächlichen Listen. Daher wird generell empfohlen, Listenverständnisse mit Join zu verwenden, um eine bessere Leistung zu erzielen.
Das obige ist der detaillierte Inhalt vonListenverständnis oder Generatorausdruck mit „join()'? Was ist effizienter?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!