Python - Remplissage d'un tableau
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

Python - Remplissage d'un tableau



  1. #1
    Latinus

    Python - Remplissage d'un tableau


    ------

    Bonjour,

    Considérons un tableau Python initialisé de telle sorte : n*[p*[0]].

    Comment le remplit-on d'entiers au hasard entre 0 et 10 ?

    J'ai essayé ainsi :

    Code:
    Code:
    v=n*[p*[0]]
    k=randint(0,10)
    for i in range(n):
       for j in range(p):
          v[i][j]=k
          k=randint(0,10)
    Or le programme me retourne le même entier à chaque colonne, et je ne vois pas pourquoi...

    Merci d'avance,
    Latinus.

    -----
    Dernière modification par Jack ; 18/04/2017 à 20h03. Motif: rectification balise code

  2. #2
    pm42

    Re : Python - Remplissage d'un tableau

    Tu as déjà posé la question sur un autre fil et on t'a déjà demandé de faire l'effort de formater ton code.
    Pourquoi la reposer ici sans même faire le dit effort ?

  3. #3
    Latinus

    Re : Python - Remplissage d'un tableau

    1. Le code a été modifié sur l'autre fil.
    2. J'ai mis vos balises, sûrement les ai-je mal mises, car je n'ai pas votre expérience, veuillez m'en excuser.
    3. Je repose la question parce que le titre de l'autre fil n'est plus en accord avec ma question.

    Merci de vos conseils pour mettre en forme ma question, je ne sais pas s'il est possible d'aborder une réponse.

  4. #4
    albanxiii
    Modérateur

    Re : Python - Remplissage d'un tableau

    Citation Envoyé par Latinus Voir le message
    2. J'ai mis vos balises, sûrement les ai-je mal mises, car je n'ai pas votre expérience, veuillez m'en excuser.
    C'est pour cela que les balises sont disponibles en un clic dans l'interface d'édition des messages (l'interface complète). Ceci dit, c'est juste un \ au lieu d'un / qui ne va pas dans votre message.
    D'ailleurs, j'y repense, il y a aussi une fonction de visualisation avant de poster. A croire que personne ne se relit.
    Not only is it not right, it's not even wrong!

  5. A voir en vidéo sur Futura
  6. #5
    Latinus

    Re : Python - Remplissage d'un tableau

    Merci, je note vos conseils, et je me relirai la prochaine fois.

  7. #6
    pm42

    Re : Python - Remplissage d'un tableau

    Sinon, votre problème est que vous créez un tableau de taille p (p*) rempli de 0.
    Puis un tableau de taille n (n*) rempli du tableau précédent.
    Donc dans v, chaque ligne pointe sur la même chose, le tableau initial. Vous avez n fois un tableau à 1 dimension, pas 1 tableau à 2 dimensions.

    C'est facile à vérifier : il suffit de faire v[1][1] = 42 puis v pour l'afficher. Le 42 est sur chaque ligne...

  8. #7
    AbA2L

    Re : Python - Remplissage d'un tableau

    Code:
    v=n*[p*[0]]
    k=randint(0,10)
    for i in range(n):
        for j in range(p):
            k=randint(0,10)
            v[i][j]=k
    Nous ne nous approchons de la verité que dans la mesure oú nous nous éloignons de la vie

  9. #8
    pm42

    Re : Python - Remplissage d'un tableau

    On peut noter que la variable k ne sert absolument à rien.

  10. #9
    AbA2L

    Re : Python - Remplissage d'un tableau

    Citation Envoyé par pm42 Voir le message
    On peut noter que la variable k ne sert absolument à rien.
    mis à pars si Latinus compte replacer le "randint(0,10)" par autre chose en fonction de i ou de j ou des deux en même temps!

    mais il peux tout aussie bien remplacer:
    Code:
            k=randint(0,10)
            v[i][j]=k
    par:

    Code:
     v[i][j]=randint(0,10)
    Dernière modification par AbA2L ; 18/04/2017 à 20h46.
    Nous ne nous approchons de la verité que dans la mesure oú nous nous éloignons de la vie

  11. #10
    Latinus

    Re : Python - Remplissage d'un tableau

    Merci de vos réponses !

    Le souci était donc que les listes Python sont des séquences mutables.

    Donc pour créer un tableau, avec des éléments pointant à des adresses indépendantes :

    Code:
    n0=p*[0]
    v=[n0]
    for i in range(n-1): v.append(n0.copy())
    Bonne soirée !
    Latinus.

Discussions similaires

  1. [Python] subprocess, lancer un autre programme avec python
    Par Loupsio dans le forum Programmation et langages, Algorithmique
    Réponses: 10
    Dernier message: 30/11/2016, 19h56
  2. en python le multi tache n'est pas possible alors pourquoi les threads existent sur python?
    Par docEmmettBrown dans le forum Programmation et langages, Algorithmique
    Réponses: 5
    Dernier message: 10/06/2015, 16h47
  3. Remplissage tableau C#
    Par guillaummme dans le forum Programmation et langages, Algorithmique
    Réponses: 7
    Dernier message: 23/05/2014, 11h58
  4. Alimentation d'un tableau divisionnaire depuis tableau principal
    Par wonderfulif dans le forum Bricolage et décoration
    Réponses: 2
    Dernier message: 19/09/2013, 18h22
  5. le tableau permettant de trouver l'ordre de remplissage
    Par invite57c166fd dans le forum Chimie
    Réponses: 3
    Dernier message: 25/12/2010, 12h43