Nouvelle ligne de signe dans la liste Python
Je suis en train de faire un tableau de tableaux en python, mais sans succès, j'ai donc pensé qu'il serait beaucoup plus facile pour moi de travailler avec une liste avec les sauts de lignes.
Ce que je fais, c'est ceci :
board = []
for i in range(10):
for j in range(10):
board.append("0 ")
board.append("\n")
print board
Mais lors de l'impression de ce , il sort
['0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '\n', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '\n', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '\n', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '\n', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '\n', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '\n', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '\n', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '\n', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '\n', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '0 ', '\n']
Je ne veux pas l' '\n'
pour montrer que '\n'
, je veux qu'il fasse une nouvelle ligne dans la liste.
Comment puis-je le faire ?
Je vous remercie à l'avance, Iliya 🙂
- Cela ne marchera jamais bien. Je pense que vous devriez ouvrir une question à propos de vos problèmes avec des listes de listes.
- Bonjour. Voir ma réponse, s'il vous plaît. BTW, mon conseil est : ne pas être trop pressé pour upvote et accepter des réponses, des réponses rapides par des gens désireux d'obtenir les points ne sont pas nécessaires les meilleurs.
InformationsquelleAutor Iliya Vaitzman | 2013-12-12
Vous devez vous connecter pour publier un commentaire.
Si vous voulez un tableau de tableaux (ou dans ce cas, une liste de listes) rempli avec des 0, alors vous pourriez utiliser:
Comme d'habitude, Ignacio n'essayez pas d'être plus que laconique.
La raison pour laquelle vous obtenir un écran comme celui vous montrer, c'est que lorsqu'un
print
déclaration est faite à l'impression d'un objetobj
, la méthodeobj.__str__
est appelée pour obtenir une chaîne de caractères qui peut être écrit sur l'écran.Puis, dans votre cas, il est
board.__str__()
qui est appelé.Le fait est que l'élément
'\n'
est un personnage, mais de tous les éléments'\n'
dansboard
ne sont pas des éléments d'une chaîne de caractères : ils sont les éléments d'une liste et__str__
est telle que les éléments d'une liste sont représentés à l'intérieur d'une liste de chaînes de caractères obtenue à partir de__repr__
(voir la doc sur cette méthode et de sa différence avec__str__
)De comprendre plus précisément les processus exécutés par le
print
déclaration, il faudrait examiner le code de l'instructionprint
, mais je pense qu'il n'est pas dans le code Python, mais dans le code C, (je suppose, je ne suis pas très compétent sur ce point)Cela dit, je pense que ce que vous voulez obtenir, c'est un écran comme ça:
Il n'y a pas besoin de placer des
'\n'
caractères dans une liste pour obtenir cet affichage. Plutôt, ce faire:résultat
.
.
NB
En Python un
array
objet est un objet de ce typeLes éléments d'un tableau ont tous la même contrainte de type qui ne peut pas être la
array
's type. Si un objet est un tableau de tableau ne signifie rien en Python.NB2
Maintenant, avec la définition ci-dessus de
board
, vous avez le problème que des éléments peuvent être uniquement des chaînes de longueur 2 avec un espace au deuxième caractère.Il existe des solutions pour gérer les situations avec des éléments n'étant pas des chaînes, et de longueur variable, mais il devient rapidement compliqué.
C'est pourquoi la Numpy de la bibliothèque a été créé, pour permettre la manipulation facile de la matrice de présentation grâce à un type appelé
ndarray
Certainement pas par l'impression de la représentation de la liste...
Vous imprimez une Liste. Il peut sembler qu'il est. "\n" ne fonctionnera que si vous imprimez comme une chaîne de caractères.
S'il vous plaît essayer
print "".join(conseil d'administration)
Si tu veux voir une nouvelle utilisation de la marge de liste de listes ne pas ajouter '\n'
Voici un exemple: