Über die Einschlussnotation von Python

Einführung

Es gibt ein Format namens Einschlussnotation in Python, Ich habe es gemacht, ohne es überhaupt zu benutzen, aber es hängt mit der Leistung zusammen, also dachte ich, ich würde versuchen, es richtig zu verstehen.

Machen Sie eine Liste

Erstellen Sie eine Liste mit nur ungeraden Zahlen von 1 bis 100. Das Verfahren zum Erstellen ohne Verwendung der Einschlussnotation ist wie folgt

list1.py


list = []
for number in range(1,101):
    if number % 2 ==1:
        list.append(number)
print(list)

Als nächstes werde ich dasselbe mit der Einschlussnotation versuchen. Das Programm ist wie folgt

list2.py


list = [number for number in range(1,101) if number %2 ==1]
print(list)

Die erste Nummer ist die in der Liste gespeicherte Nummer. Die Nummer nach for ist ein Teil der Nummer nach for.

Machen Sie einen Satz

Machen Sie einen Satz von nur ungeraden Zahlen von 1 bis 99. Ich werde es inklusive Notation wie eine Liste nennen.

shugo.py


list = {number for number in range(1,101) if number %2 ==1}
print(list)

Erstelle ein Wörterbuch

In ähnlicher Weise wird das Wörterbuch auch unter Verwendung der Einschlussnotation aufgerufen. Ein Programm, das zählt, wie oft das Wortzeichen erscheint

jisyo.py


word = 'aiueokakiku'
word_count = {x:word.count(x) for x in word}
print(word_count)

Über tapple

Machen wir es wie eine Liste.

tuple1.py


tuple = (number for number in range(1,101) if number %2 ==1)
print(tuple)

Wenn du rennst <generator object <genexpr> at 0x101435f61> Es ist kein Fehler, aber der Generator kehrt zurück, wenn ich () benutze. Mit anderen Worten, ** Tupel haben keine Einschlussnotation **.

Leistungsvergleich

Ich werde versuchen, ob es wirklich schnell geht. Lassen Sie uns zunächst eine Liste mit nur ungeraden Zahlen von 1 bis 10000000 erstellen, ohne die Einschlussnotation zu verwenden.

test1.py


import time
start = time.time()

list = []
for number in range(1,10000001):
    if number % 2 ==1:
        list.append(number)

print("Ausführungszeit:{0}",time.time() - start)

Der Durchschnitt von 5 Läufen betrug ** 1,71131701469 **

Als nächstes werde ich dasselbe mit der Einschlussnotation versuchen

test2.py


import time
start = time.time()

list = [number for number in range(1,10000001) if number %2 ==1]

print("Ausführungszeit:{0}",time.time() - start)

Der Durchschnitt von 5 Läufen betrug ** 0,88413858413 **

Ergebnis

Das Schreiben in der Einschlussnotation war etwa doppelt so schnell und reduzierte einfach die Codemenge. Es scheint, dass es einfacher zu lesen sein wird, wenn Sie sich daran gewöhnen, also werde ich mein Bestes tun, um mich so schnell wie möglich daran zu gewöhnen.

Recommended Posts

Über die Einschlussnotation von Python
Python-Einschlussnotation
Python-Einschlussnotation
Über Python-Slices
Über Python tqdm.
Über die Python-Ausbeute
Über Python, Klasse
Informationen zur Python-Vererbung
Über Python, range ()
Über Python Decorator
Python> Verständnis / Inklusive Notation> Listenverständnis
Informationen zur Python-Referenz
Über Python-Dekorateure
[Python] Über Multi-Prozess
Über Python für Schleife
Über Funktionsargumente (Python)
Geschwindigkeit der Listeneinschlussnotation in Python
[Python] Memo über Funktionen
Zusammenfassung über Python3 + OpenCV3
Über Python für ~ (Bereich)
[Python] Memo Über Fehler
Informationen zur Python-Entwicklungsumgebung
Python: Über Funktionsargumente
Python, über die Ausnahmebehandlung
Über Python Pyramid Traversal
Über Python3 ... (Ellipsenobjekt)
[Python] Kapitel 01-01 Über Python (Erster Python)
[Python] Informationen zur Standardeingabe
Über __all__ in Python
[Python] Informieren Sie sich über pip
Fabric unterstützt Python 3
Python
Informationen zu Python-Objekten und -Klassen
Informationen zu Python-Variablen und -Objekten
Über das Python-Modul venv
Python-Anfänger-Memorandum-Funktion
Über die Aufzählungsfunktion (Python)
Über verschiedene Codierungen von Python 3
Über Python, len () und randint ()
Über Perl, Python, PHP, Ruby
Informationen zu Python-Datums- und Zeitzone
Memorandum über Korrelation [Python]
Ein Memorandum über den Python-Mock
Informationen zu Python-Zeichenfolgenvergleichsoperatoren
Über Python und reguläre Ausdrücke
Über die Funktionen von Python
Über "für _ in range ():" von Python
Informationen zu Python- und Betriebssystemoperationen
Python # Über Referenz und Kopie
Über Python sort () und reverse ()
Ein Hinweis zu [Python] __debug__
Python Hinweis: Über den Vergleich mit is
Informationen zur Installation der Serien Pwntools und Python2
Python: Ein Hinweis zu Klasse 1 "Abstract"
[Python] Lassen Sie uns kurz über die Einschlussnotation schreiben
Über Python-Diktat und sortierte Funktionen
Über Python und Cython dtype