Ich habe die Geschwindigkeit der Referenz des Pythons in der Liste und die Referenz der Wörterbucheinbeziehung aus der In-Liste verglichen.

Einführung

Beim letzten Mal wurde in einem Experiment bestätigt, dass die Referenz des Elements in der Liste im Vergleich zum Wörterbuch und zum Satztyp sehr langsam war. http://qiita.com/cof/items/05f6ffc6d4e5b062aaa9 Die Wörterbucheinschlussnotation sollte jedoch ziemlich schnell sein. Ich fragte mich, ob es explosiv wäre, wenn ich jedes Mal ein Wörterbuch einfügte, bevor ich mich darauf bezog, also schlug ich es nach.

Ausführungsumgebung

python2.7 windows7 Intel Core i5 CPU 2.4GHz

Ausführungsbedingung

Ich habe es überprüft, indem ich mich auf 10000 Elemente der folgenden zwei Codes bezogen und die Zeit gemessen habe, als es 10 Mal ausgeführt wurde. Anzahl der Elemente 10000 Element in Liste Element in {Element: True für Element in Liste}

Ergebnis (Gesamtzeit bei 10-maligem Ausführen)

Element in Liste 10.226 Element in {Element: True für Element in Liste} 124.887

Fazit

Es war nicht schnell, jedes Mal ein Wörterbuch aufzunehmen.

Experimenteller Code

def in_list(n):
  ls = [i for i in range(n)]
  for i in range(n): i in ls
  
def in_dict(n):
  ls = [i for i in range(n)]
  for i in range(n): i in {i:True for i in ls}

def exe(func,num=100):
  from timeit import timeit
  setup = 'from __main__ import ' + func.split('(')[0]
  print "%s: %s" % (func, timeit(func, setup, number=num))
if __name__=='__main__':
  q = 10**4
  exe('in_list(%d)'%q,10)
  exe('in_dict(%d)'%q,10)

Recommended Posts

Ich habe die Geschwindigkeit der Referenz des Pythons in der Liste und die Referenz der Wörterbucheinbeziehung aus der In-Liste verglichen.
Ich habe die Referenzgeschwindigkeit überprüft, wenn ich Python-Liste, Wörterbuch und Set-Typ verwendet habe.
Ich habe die Geschwindigkeit der Listeneinschlussnotation für und während mit Python2.7 gemessen.
Ich habe die Geschwindigkeit regulärer Ausdrücke in Ruby, Python und Perl (Version 2013) verglichen.
Ich habe die Geschwindigkeit von Hash mit Topaz, Ruby und Python verglichen
Ich habe die numerische Berechnung von Python durch Rust ersetzt und die Geschwindigkeit verglichen
Ich verglich die Geschwindigkeit von Go Language Web Framework Echo und Python Web Framework Flask
Python: Erstellen Sie ein Wörterbuch aus einer Liste von Schlüsseln und Werten
[Einführung in Python] Ich habe die Namenskonventionen von C # und Python verglichen.
Ich habe ein Programm erstellt, um die Größe einer Datei mit Python zu überprüfen
[Python] Sortieren Sie die Liste von pathlib.Path in natürlicher Reihenfolge
Kopieren Sie die Liste in Python
Ich habe "Python Dictionary Type" und "Excel Function" verglichen.
Vergleichen Sie die Geschwindigkeit von Python Append und Map
Verarbeitung (Python) Diagramm der Koordinaten der Liste Geben Sie an, wie oft in draw ()
Geschwindigkeit der Listeneinschlussnotation in Python
[Python] Ruft die Liste der im Modul definierten Klassen ab
Ich habe mir die Versionen von Blender und Python angesehen
[Python] Gibt alle Kombinationen von Elementen in der Liste aus
Python3-Einschlussnotation (Liste, Wörterbuch), die ich irgendwo gesehen habe
Das Konzept der Referenz in Python brach für einen Moment zusammen, also experimentierte ich ein bisschen.
Ich habe die Berechnungszeit von "X in Liste" (lineare Suche / dichotome Suche) und "X in Menge" untersucht.
Ich habe versucht, die Verarbeitungsgeschwindigkeit mit dplyr von R und pandas von Python zu vergleichen
[Python] Ich habe versucht, das Array, die Wörterbuchgenerierungsmethode, die Schleifenmethode und die Listeneinschlussnotation zusammenzufassen
Ich habe Java und Python verglichen!
In Python werden die Elemente in der Liste sortiert und als Elemente und Vielfache ausgegeben.
Holen Sie sich die Anzahl der spezifischen Elemente in der Python-Liste
Referenzreihenfolge von Klassenvariablen und Instanzvariablen in "self. Klassenvariablen" in Python
[Python] Ich habe das Spiel von pip installiert und versucht zu spielen
Ich habe versucht, den Chi-Quadrat-Test in Python und Java zu programmieren.
Ich möchte die Natur von Python und Pip kennenlernen
Ich möchte den Wörterbuchtyp in der Liste eindeutig machen
[Tipps] Probleme und Lösungen bei der Entwicklung von Python + Kivy
Ich habe N-Queen in verschiedenen Sprachen implementiert und die Geschwindigkeit gemessen
Ruft den Wert eines bestimmten Schlüssels bis zum angegebenen Index der Wörterbuchliste in Python ab
Zählen Sie die Anzahl der thailändischen und arabischen Zeichen in Python gut
Unterschied zwischen list () und [] in Python
Ich habe einen Linienbot erstellt, der das Geschlecht und das Alter einer Person anhand des Bildes errät
Existenz aus Sicht von Python
[Python] Ich habe die Theorie und Implementierung der logistischen Regression gründlich erklärt
Ich habe den Code geschrieben, um den Brainf * ck-Code in Python zu schreiben
So überprüfen Sie die Speichergröße eines Wörterbuchs in Python
[Python] Ich habe die Theorie und Implementierung des Entscheidungsbaums gründlich erklärt
[Python] Ermittelt den Rang der Werte in der Liste in aufsteigender / absteigender Reihenfolge
Ich habe Node.js und Python beim Erstellen eines Miniaturbilds mit AWS Lambda verglichen
Ich habe die Warteschlange in Python geschrieben
Teil 1 Ich habe die Antwort auf das Referenzproblem geschrieben, wie man in Python in Echtzeit offline schreibt
Liste der in Python verfügbaren Löser und Modellierer für lineares Design (LP)
Liste der Katastrophenfälle der Feuerwehr von Sapporo City [Python]
Informationen zur Grundlagenliste der Python-Grundlagen
Holen Sie sich den Titel und das Lieferdatum von Yahoo! News in Python
Ich habe den Stack in Python geschrieben
Reputation von Python-Büchern und Nachschlagewerken
Beachten Sie, dass ich den Algorithmus des maschinell lernenden Naive Bayes-Klassifikators verstehe. Und ich habe es in Python geschrieben.
Richten Sie mit Python einen Dummy-SMTP-Server ein und überprüfen Sie den Sendevorgang von Action Mailer
[Python] Ich habe das Tagebuch eines Mannes im ersten Jahr des Arbeitslebens analysiert und das Arbeitsleben positiv / negativ beurteilt.