Was ist besser, wenn Pythons Standardeingabe input () oder sys.stdin empfängt?

Irgendwie habe ich "input ()" vermieden und "sys.stdin" verwendet, aber welches ist eigentlich besser? Ich habe die Geschwindigkeit und die Menge des Codes verglichen. Zusätzlich wird auch der Dateieingang verglichen.

Fazit Verwenden Sie sys.stdin

Die Betriebsgeschwindigkeit beträgt input() >>> fileinput > sys.stdin

Vergleichsmethode

Betriebsgeschwindigkeit der Eingabe ()

input()Codebeispiel.py


data_all = [input().split() for i in range(10000)]#Kollektive Datenerfassung
data_list = [[int(s) for s in line]for line in data_all] #Int Daten
#for line in data_all:
#    data_list.append([int(s) for s in line])

Betriebszeit: ca. 21,1 [ms]

Betriebsgeschwindigkeit von sys.stdin

Codebeispiel für sys.py


data_list = [ [int(s) for s in line.split()] for line in sys.stdin ]
#data_list = []
#for line in sys.stdin:
#    data_list.append([int(s) for s in line.split()])

Betriebszeit: ca. 10,5 [ms]

Betriebsgeschwindigkeit der Dateieingabe

import fileinput
data_list = [ [int(s) for s in line.split()] for line in fileinput.input() ]

Betriebszeit: ca. 12,5 [ms]

Der Code ist mit sys sauberer

Ich habe es in die Einschlussnotation geändert. Wenn ich input () verwende, sind es 2 Zeilen ... Die Betriebsgeschwindigkeit von input () ist fast doppelt so langsam. Wenn man sich die Artikel anderer Leute ansieht, scheint es einen Unterschied von 10 Mal oder mehr zu geben. Es scheint besser zu sein, sys zu verwenden. Ich habe versucht, zusätzliche Dateien einzugeben, aber es war nicht so schnell wie sys.stdin.

Ohne int Konvertierung

Bei input () ca. 12,9 [ms] Für sys.stdin ungefähr 5,5 [ms] Für den Dateieingang ca. 7,5 [ms] Die Int-Konvertierung nimmt überraschend viel Zeit in Anspruch. Immerhin scheint sys.stdin in der Betriebsgeschwindigkeit schneller zu sein.

Recommended Posts

Was ist besser, wenn Pythons Standardeingabe input () oder sys.stdin empfängt?
Was ist besser, PyPy oder Python?
Empfangen von Standardeingabetipps @ python
[Anfänger sind besorgt] Was ist besser, Ruby, PHP oder Python?
Was ist schneller, Python Shuffle oder Sample?
[Linux] Ende des Prozesses oder Jobs, was ist besser?
Python 3.4 oder höher Standard Pip
[Python3] Standardeingabe [Cheet Sheet]
Teil 1 des Empfangs von Standardeingaben
Python3-Standardeingabe (Competition Pro)
Standardeingabe / Zusammenfassung / Python, Ruby
Analyse nach Bayes'schem Denken (1) ... Was ist besser, A oder B?
[Python] Was wird zuerst ausgeführt, Klassenvariable oder __init__?
Python3-Standardeingabe für wettbewerbsfähige Programmierung
Golang vs. Python - Ist Golang besser als Python?
Bestimmen des Betriebssystems, auf dem Python ausgeführt wird
Python Paiza - Verschiedene Fähigkeitsüberprüfungen und Standardeingaben
Python3-Standardeingabe habe ich versucht zusammenzufassen
Atcoder-Standardeingabesatz für Anfänger (Python)
[Python] Fügen Sie der Standardeingabedatei einen Kommentar hinzu
Starten Sie vhost oder Apache neu, was oft vergessen wird
[Python] Was verwendet werden sollte, return oder return None
Python: Entpacken Sie die Standardeingabe mit zipfile