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.
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 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)
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)
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 **.
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 **
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