Une façon de le faire, en supposant que les sous-listes sont sur des lignes distinctes:
with open("filename.txt",'r')as f:
data =[map(int, line.split())for line in f]
Noter que le with déclaration n'est pas devenue officielle jusqu'à ce que la version 2.6 de Python. Si vous utilisez une version antérieure, vous aurez besoin de faire
from __future__ import with_statement
+1 c'est plus proche de la façon dont je le ferais, et je pense que le meilleur exemple de "bonnes pratiques" (quoi que cela signifie) du 5 réponses ici.
Cette façon de vraiment stocker une découpé ligne dans un tuple? Pouvez-vous nous expliquer un peu plus? Merci. En fait, cela vous donnera une liste de listes, pas une liste de tuples (parce que str.split renvoie une liste). Fondamentalement, ce qu'il fait est d'ouvrir le fichier, lire dans ses lignes, puis itérer à travers eux (for tup in ...) et de diviser chacune sur un espace. Alors, comment les stocker dans un tuple? C'est une partie de ma question initiale. Merci. l'un des revêtements sont cool l'OP a dit de listes ou de tuples, mais bon, grâce, édité. @Stan : il suffit de construire un n-uplet de la liste.
string ="""1 2 3
4 5 6
7 8 9"""
data =[]for line in string.split("\n"):#split by new line
data.append( map( int, line.split(" ")))# split by spaces and add print( data )
nan, je veux l'enregistrer entier dans ma liste, pas de chaîne. Et pouvez-vous déterminer à partir de mon exemple? ... c'est facile ... J'arrive à la fin à l'aide de la cartographie de la fonction. N'a toujours pas trouver un autre moyen de convertir tous lu dans la chaîne de caractères en un nombre entier. J'ai juste appris à la carte à partir de Jeff réponse. Oh, je pensais que tu avais déjà j'ai mal lu votre j'ai fini par utiliser...
Une façon de le faire, en supposant que les sous-listes sont sur des lignes distinctes:
Noter que le
with
déclaration n'est pas devenue officielle jusqu'à ce que la version 2.6 de Python. Si vous utilisez une version antérieure, vous aurez besoin de faireOriginalL'auteur Jeff Bradberry
Si vous vous trouver en présence de matrices ou des tableaux de nombres, puis-je suggérer numpy paquet?
OriginalL'auteur Dat Chu
tuples = [n-uplet(int(s) pour s en ligne.split()) pour la ligne en open("file.txt").readlines()]
J'aime Jeff
map(int, ligne.split())
, au lieu de l'intérieur de la génératrice.En fait, cela vous donnera une liste de listes, pas une liste de tuples (parce que
str.split
renvoie une liste). Fondamentalement, ce qu'il fait est d'ouvrir le fichier, lire dans ses lignes, puis itérer à travers eux (for tup in ...
) et de diviser chacune sur un espace.Alors, comment les stocker dans un tuple? C'est une partie de ma question initiale. Merci.
l'un des revêtements sont cool
l'OP a dit de listes ou de tuples, mais bon, grâce, édité. @Stan : il suffit de construire un n-uplet de la liste.
OriginalL'auteur Stephen
Tu veux dire, comme ça?
mise à jour
Il suffit de convertir chaque string en int
De sortie:
[['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9']]Da daaaa!!!
Et pouvez-vous déterminer à partir de mon exemple? ... c'est facile ...
J'arrive à la fin à l'aide de la cartographie de la fonction. N'a toujours pas trouver un autre moyen de convertir tous lu dans la chaîne de caractères en un nombre entier.
J'ai juste appris à la carte à partir de Jeff réponse.
Oh, je pensais que tu avais déjà j'ai mal lu votre j'ai fini par utiliser...
OriginalL'auteur OscarRyz
OriginalL'auteur Hugh Bothwell