web-dev-qa-db-fra.com

Entrée de lecture séparée en python

Voici la spécification d'entrée
Le programme doit lire t lignes d’entrées. Chaque ligne est composée de 2 valeurs séparées par des espaces. La première est le nom et la seconde l'âge. Un exemple de saisie

Mike 18
Kevin 35
Angel 56

Comment lire ce genre d'entrée en python? Si j'utilise raw_input (), le nom et l'âge sont lus dans la même variable.

Mise à jour .__ Je vais préciser la question. Nous savons déjà comment lire une entrée formatée en python. Existe-t-il un moyen de lire une entrée formatée en Python ou non? Si oui alors comment?

13
gibraltar
the_string = raw_input()
name, age = the_string.split()
25
andreaspelme

Si vous l'avez dans une chaîne, vous pouvez utiliser .split() pour les séparer.

>>> for string in ('Mike 18', 'Kevin 35', 'Angel 56'):
...   l = string.split()
...   print repr(l[0]), repr(int(l[1]))
...
'Mike' 18
'Kevin' 35
'Angel' 56
>>>
8
Roshan Mathews

En supposant que vous soyez sur Python 3, vous pouvez utiliser cette syntaxe

inputs = list(map(str,input().split()))

si vous voulez accéder à un élément individuel, vous pouvez le faire comme ça

m, n = map(str,input().split())
3
Michael

Vous pouvez effectuer les opérations suivantes si vous connaissez déjà le nombre de champs de l'entrée:

client_name = raw_input("Enter you first and last name: ")
first_name, last_name = client_name.split() 

et si vous souhaitez parcourir les champs séparés par des espaces, vous pouvez effectuer les opérations suivantes:

some_input = raw_input() # This input is the value separated by spaces
for field in some_input.split():
    print field # this print can be replaced with any operation you'd like
    #             to perform on the fields.

Une utilisation plus générique de la fonction "split ()" serait:

    result_list = some_string.split(DELIMITER)

où DELIMETER est remplacé par le délimiteur que vous souhaitez utiliser comme séparateur, entouré de guillemets simples.

Un exemple serait:

    result_string = some_string.split('!')    

Le code ci-dessus prend une chaîne et sépare les champs en utilisant le '!' caractère en tant que délimiteur.

2
Jonathan

Pour Python 3, utilisez ceci 

  inp = list(map(int,input().split()))
//input => Java is a programming language
//return as => ("Java","is","a","programming","language")

input () accepte une chaîne de STDIN. 

split() divise la chaîne autour des caractères d'espacement et renvoie une liste de chaînes.

map() passe chaque élément du deuxième argument au premier argument et retourne un objet de la carte

Finalement, list() convertit la carte en liste

0
Balaji Rajendran