J'ai utilisé sys.stdin
pour éviter d'une manière ou d'une autre ʻinput ()`, mais lequel est en fait le meilleur? J'ai comparé la vitesse et la quantité de code. En outre, l'entrée de fichier est également comparée.
La vitesse de fonctionnement est input() >>> fileinput > sys.stdin
--Utilisez l'environnement d'exécution en ligne paiza.io (sans signification particulière).
--Passez un nombre + un format vide tel que «1 2 3 4» ** 10000 lignes ** comme entrée standard.
--Utilisez time
pour mesurer le temps nécessaire pour convertir l'entrée standard en int et la stocker dans la liste.
input()Exemple de code.py
data_all = [input().split() for i in range(10000)]#Acquisition collective de données
data_list = [[int(s) for s in line]for line in data_all] #Données internationales
#for line in data_all:
# data_list.append([int(s) for s in line])
Durée de fonctionnement: environ 21,1 [msec]
Exemple de code de 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()])
Durée de fonctionnement: environ 10,5 [msec]
import fileinput
data_list = [ [int(s) for s in line.split()] for line in fileinput.input() ]
Durée de fonctionnement: environ 12,5 [msec]
Je l'ai changé en notation d'inclusion. Si j'utilise input (), ce sera 2 lignes ...
La vitesse de fonctionnement de input () est presque deux fois plus lente. En regardant les articles d'autres personnes, il semble qu'il y ait une différence de 10 fois ou plus. Il semble préférable d'utiliser sys
.
J'ai essayé une entrée de fichier supplémentaire, mais ce n'était pas aussi rapide que sys.stdin.
Dans le cas de input (), environ 12,9 [msec] Pour sys.stdin, environ 5,5 [msec] Pour l'entrée de fichier, environ 7,5 [msec] La conversion Int prend un temps surprenant. Après tout, sys.stdin semble être plus rapide en vitesse de fonctionnement.
Recommended Posts