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.
Die Betriebsgeschwindigkeit beträgt input() >>> fileinput > sys.stdin
time
, um die Zeit zu messen, die benötigt wird, um die Standardeingabe in int umzuwandeln und in einer Liste zu speichern.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]
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]
import fileinput
data_list = [ [int(s) for s in line.split()] for line in fileinput.input() ]
Betriebszeit: ca. 12,5 [ms]
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.
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