Pour m'entraîner je fais un petit jeu sur console qui se jouera sur une grille 10*10. Pour la simuler j'utilise une liste contenant 10 listes contenant chacune 10 éléments. Sauf que quand j'affiche la grande liste L, les lignes de la grille s'affichent côte à côte :
Ce qui est très rebutant et gênant. N'est-il pas possible d'afficher une seule petite liste chaque ligne ? (Sans passer par le print(L[i],'\n'). Je voudrais que dès que je déclare la liste, celle-ci s'affiche automatiquement comme je l'ai décrite.)
Je voudrais que dès que je déclare la liste, celle-ci s'affiche automatiquement comme je l'ai décrite
C'est pas possible ça imho.
Le plus simple est d'utiliser ta propre fonction en utilisant une boucle for. J'ai testé le module pprint et je suis pas certain que tu puisse obtenir ce que tu veux avec.
Eh bien je pense que je vais créer une fonction pour ça. Merci en tout cas.
Mais j'ai rencontré un autre problème :
for j in range(18):
a,b=int(input()),int(input())
L[a][b]=1
Je demande à l'utilisateur de répartir les pièces sur la moitié de la grille (j'ai remplacé la 10*10 par une 6*6), sauf que quand j'affecte à L[a][b] la valeur 1, voici le résultat après avoir rentré 0 pour a et 1 pour b.
Au lieu que ce soit uniquement L[0][1] qui devienne un 1, TOUTES les listes voient leurs deuxième élément remplacé... Pourquoi ? Je ne comprends pas. Merci d'avance.
EDIT : Bon ben une autre solution m'est tombée sous la tête:
for i in range(18):
a,b=int(input()),int(input())
l.append([a,b])
L=list()
for j in range(6):
L.append([])
for k in range(6):
if [j,k] in l:
L[j].append(1)
else:
L[j].append(0)
Pas super pratique mais ça fonctionne Même si ça ne me ferait pas de mal de savoir pourquoi ma précédente ne fonctionne pas...
Ça doit venir de ta façon de créer les listes, selon la façon de faire au lieu d'avoir plein de listes différentes tu as plein de références à la même liste, du coup en modifier une les modifie toutes.
- Edité par LoupSolitaire 21 juillet 2013 à 3:13:24
J'ai l'impression que tous ceux qui approfondissent python bloquent sur ce point à un moment.
Blond, bouclé, toujours le sourire aux lèvres...
Etaler une liste sur plusieurs lignes
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Blond, bouclé, toujours le sourire aux lèvres...
Blond, bouclé, toujours le sourire aux lèvres...
Blond, bouclé, toujours le sourire aux lèvres...
Blond, bouclé, toujours le sourire aux lèvres...
Blond, bouclé, toujours le sourire aux lèvres...