Besoin d'aide pour un tableau
RésoluBonjour tout le monde,
Je débute en python je voudrais remplacer les 0 par des points.
board = []
n = int(input("Ecriver la taille du tableau"))
x = int(input("Ecriver la largeur du tableau"))
for i in range(n):
line = []
for j in range(x):
0 = .
line.append(0)
board.append(line)
for l in board :
print(l)
A voir également:
- Besoin d'aide pour un tableau
- Tableau word - Guide
- Trier un tableau excel - Guide
- Tableau ascii - Guide
- Imprimer un tableau excel - Guide
- Tableau croisé dynamique - Guide
1 réponse
Bonjour,
Si tu veux faire une liste de caractère ".", il suffit de directement les insérer dans ta liste :
def make_board(m: int, n: int, x = 0) -> list:
board = list()
for _ in range(m):
l = [x] * n
board.append(l)
return board
board = make_board(5, 10, ".")
print(board)
Supposons maintenant que tu sois en train de coder un démineur et que tu veuilles afficher ton tableau d'entier, de sorte à ne remplacer que les zéros par des points. Alors le programme devient :
def board_to_str(board: list) -> str:
return "\n".join(
"".join(
str(board[i][j]) if board[i][j] != 0 else '.'
for j in range(len(board[i]))
)
for i in range(len(board))
)
board = make_board(5, 10, 0)
board[2][3] = 1
print(board_to_str(board))
Résultat :
..........
..........
...1......
..........
..........
Remarque :
On ne peut pas écrire :
(m, n) = (5, 10) board = [["."] * n] * m board[2][3] = 1 print(board_to_str(board))
... car cela retourne :
...1......
...1......
...1......
...1......
...1......
En effet, on recopie m fois la référence à la même sous-liste de taille n pour constituer le plateau. Du coup, si tu modifies une ligne, tu les modifies toutes.
Bonne chance