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