La conversion d'entrée (stdin) dans des listes
J'ai besoin de convertir les données d'entrée(série de nombres entiers) dans un tas de listes.
D'Entrée D'Échantillon:
3
2
2 2 4 5 7
Exemple De Sortie:
list1=[3]
list2=[2]
list3=[2,2,4,5,7]
Je suis en train de le faire:
list=[]
import sys
for line in sys.stdin:
list.append(line)
mais imprimer la liste renvoie
['3\n', '2\n', '2 2 4 5 7']
OriginalL'auteur Noob Coder | 2013-10-05
Vous devez vous connecter pour publier un commentaire.
Utilisation
split
de découper une chaîne en une liste, par exemple:Comme vous le voyez, sont des éléments de la chaîne. Si vous souhaitez avoir des éléments comme des entiers, utilisez
int
et une compréhension de liste:Donc, dans votre cas, il vous faudrait faire quelque chose comme:
Vous finirez par avoir une liste de listes:
Si vous voulez avoir ces listes de variables, il suffit de faire:
J'ai juste édité ma réponse
OriginalL'auteur juliomalegria
Voici un moyen:
L'idée est que pour chaque ligne de votre lecture, vous pouvez le mettre dans une liste à l'aide de
literal_eval()
. Une autre, plus courte option serait d'utiliser des interprétations de la liste:Ci-dessus suppose que les nombres sont des entiers, remplacer
int()
avecfloat()
dans le cas où les chiffres ont décimales.OriginalL'auteur Óscar López