Quel est le meilleur, l'entrée standard de python recevant input () ou sys.stdin?

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.

Conclusion Utilisez sys.stdin

La vitesse de fonctionnement est input() >>> fileinput > sys.stdin

Méthode de comparaison

--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.

Vitesse de fonctionnement de l'entrée ()

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]

Vitesse de fonctionnement de sys.stdin

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]

Vitesse de fonctionnement de l'entrée de fichier

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

Durée de fonctionnement: environ 12,5 [msec]

Le code est plus propre avec sys

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.

Sans conversion int

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

Quel est le meilleur, l'entrée standard de python recevant input () ou sys.stdin?
Quel est le meilleur, PyPy ou Python?
Recevoir des conseils d'entrée standard @ python
[Les débutants sont inquiets] Quel est le meilleur, Ruby, PHP ou Python?
Qu'est-ce qui est le plus rapide, le mélange Python ou l'échantillon?
[Linux] Fin du processus ou du travail, quel est le meilleur?
Python 3.4 ou version ultérieure standard pip
[Python3] Entrée standard [Cheet sheet]
Partie 1 de la réception de l'entrée standard
Entrée standard Python3 (compétition pro)
Entrée standard / résumé / python, ruby
Analyse par raisonnement bayésien (1) ... Quel est le meilleur, A ou B?
[Python] Qui est exécuté en premier, variable de classe ou __init__?
Entrée standard Python3 pour une programmation compétitive
Golang vs Python - Golang est-il meilleur que Python?
Déterminer le système d'exploitation exécutant Python
Python Paiza-Divers contrôles de compétences et entrées standard
Entrée standard Python3 que j'ai essayé de résumer
Ensemble d'entrées standard Atcoder pour les débutants (python)
[Python] Ajouter un commentaire au fichier d'entrée standard
Redémarrez vhost ou Apache, qui est souvent oublié
[Python] Qui doit être utilisé, renvoyer ou renvoyer Aucun
Python: décompressez depuis l'entrée standard en utilisant zipfile