Récemment, j'ai résolu des problèmes de programmation sur un certain site pour améliorer mes compétences en python. Notez que j'ai remarqué que des arguments de longueur variable peuvent être utilisés dans le prétraitement des données d'entrée.
Les données d'entrée de chaque problème sont données dans le format suivant à partir de l'entrée standard, par exemple.
Nom municipal Superficie de la population
shinjyuku 341009 18.22
・ ・ ・
Plusieurs types sur une ligne, en particulier une chaîne de caractères au début et un motif numérique après tout.
Étant donné que les données lues à partir de l'entrée standard sont stockées sous forme de chaîne de caractères, La conversion est requise pour les données numériques.
>>> name, population, area = input().split(' ')
shinjyuku 341009 18.22
>>> name
'shinjyuku'
>>> population
'341009'
>>> area
'18.22'
Ceci est gênant car il est nécessaire d'effectuer une conversion numérique pour chaque variable. Donc, je veux mettre toutes les parties numériques ensemble dans la liste.
>>> name, data = input().split(' ')
shinjyuku 341009 18.22
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: too many values to unpack (expected 2)
Si vous essayez simplement d'attribuer plusieurs valeurs décompressées à une donnée variable, Je me fâche quand il n'y a pas assez de variables. Nous utilisons donc des arguments de longueur variable.
>>> name, *data = input().split(' ')
shinjyuku 341009 18.22
>>> name
'shinjyuku'
>>> data
['341009', '18.22']
C'est un argument de longueur variable que vous voyez et entendez souvent lorsque vous parlez d'arguments de méthode, mais il existe également un tel usage. Cependant, dans ce cas, il semble étrange de l'appeler un "argument de longueur variable".
Recommended Posts