Bonjour,
Depuis plusieurs jours, j’étudie le python pour élargir mes connaissances, c'est un très beau langage mais je rencontre quelques difficultés.
Voici mon problème, J’ai une chaine de caractères avec des retour à la ligne (\n).
Mon objectif est simplement le transformer en array à 2 dimension autrement dit «liste de liste. (matrix[][])«
Voici ma chaîne de caractères.
OOOOOOOOOOOOOOOOOOOO\n
OXO . O O . O\n
O.O O O O O O\n
O O O O O O O\n
O.O O . O O O\n
chaine ="OOOOOOOOOOOOOOOOOOOO\nOXO . O O . O\nO.O O O O O O\nO O O O O O O\nO.O O . O O O\n"
Et je souhaite obtenir un array 2 dimensions
1 2
| matrix
['OOOOOOOOOOOOOOOOOOOO', 'OXO . O O . O', 'O.O O O O O O', 'O O O O O O O', 'O.O O . O O O'] |
J'ai tenter un approche simple avec des boucles qui a fonctionné. Comme en C.
1 2 3 4 5
| chaine ="OOOOOOOOOOOOOOOOOOOO\nOXO . O O . O\nO.O O O O O O\nO O O O O O O\nO.O O . O O O\n"
matrix = []
for line in chaine.split("\n"):
print(line)
matrix.append(line) |
Reusltat
1 2 3 4 5 6 7 8 9
| >>> matrix
OOOOOOOOOOOOOOOOOOOO
OXO . O O . O
O.O O O O O O
O O O O O O O
O.O O . O O O
>>> matrix
['OOOOOOOOOOOOOOOOOOOO', 'OXO . O O . O', 'O.O O O O O O', 'O O O O O O O', 'O.O O . O O O', ''] |
Youpi, Ca marche....Mais Oups, ce n'est pas très python
Et ici que je coince. J'ai tenté d'utiliser ceci :
matrix = list(map(str, line) for line in chaine.split("\n"))
Il me renvoie un objet avec un type map malgré la commande "list" pour le convertir.
Malgré mon mauvais résultat j'ai tenté de le parcourir. mais badadoum. Ca ne fonctionne pas.
resultat:
matrix
[<map object at 0x000001742089CF60>, <map object at 0x00000174208A3048>, <map object at 0x00000174208A30F0>, <map object at 0x00000174208A3198>, <map object at 0x00000174208A3240>, <map object at 0x00000174208A32E8>]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| >>> for i in matrix:
... print(i)
...
<map object at 0x000001742089CBE0>
<map object at 0x000001742089CD68>
<map object at 0x000001742089CE10>
<map object at 0x000001742089CEB8>
<map object at 0x000001742089CEF0>
<map object at 0x00000174208A3358>
matrix[0]
<map object at 0x000001742089CBE0>
matrix[0][0]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'map' object is not subscriptable |
Ma première question: qu'es ce qui se passe ? Comment faire balader dans se type d’objet et accéder(voir mes valeurs) ?
Comment faire un array a deux dimension de manière pytfon ?
Merci de vos conseils.
Partager