Besoin d'aide pour un tableau
Résolu/Fermé
TARTAIRO
Messages postés
1
Date d'inscription
jeudi 1 décembre 2022
Statut
Membre
Dernière intervention
1 décembre 2022
-
Modifié le 1 déc. 2022 à 10:37
mamiemando Messages postés 33401 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 novembre 2024 - 1 déc. 2022 à 10:12
mamiemando Messages postés 33401 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 novembre 2024 - 1 déc. 2022 à 10:12
A voir également:
- Besoin d'aide pour un tableau
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Comment faire un tableau - Guide
- Trier un tableau excel - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
1 réponse
mamiemando
Messages postés
33401
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
28 novembre 2024
7 804
Modifié le 1 déc. 2022 à 10:21
Modifié le 1 déc. 2022 à 10:21
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