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