Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1379 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  [Python] Tableaux qui s'actualisent en même temps

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Python] Tableaux qui s'actualisent en même temps

n°2324701
tesser4ct
Puissance 4
Posté le 23-11-2018 à 13:20:15  profilanswer
 

Bonjour je suis en train de créer un petit programme python, et j'ai un souci concernant une partie de mon code : j'ai 2 tableaux qui s'actualisent en même temps, c'est à dire que si j'assigne une nouvelle valeur à un des indices du tableau, alors l'indice de l'autre tableau va aussi obtenir cette valeur sans que je lui ai demandé quoi que ce soit, et j'ai aucune idée de comment ça se fait.
 
Voici la partie du code qui pose problème :  
 

Code :
  1. explo=0
  2.             fin=0
  3.             prem=0
  4.             maxslotepow2=maxslotepow #j'ai crée les 3 variables "2" pour pouvoir les modifier sans toucher aux variables originales
  5.             maxslotecap2=maxslotecap
  6.             slotidepow2=slotidepow
  7.             while explo<nslot:
  8.                 maxepow=[i for i,x in enumerate(maxslotepow2) if x==max(maxslotepow2)]
  9.                 maxecap=[i for i,x in enumerate(maxslotecap2) if x==max(maxslotecap2)]
  10.                 nbeg=0
  11.                 if (prem==0 or fin!=0):
  12.                     prem=1
  13.                     for n in maxepow:
  14.                         for p in maxecap:
  15.                             if (slotidecap[p]==slotidepow[n] and slotidepow2[n]!=0):
  16.                                 catepow2.append(maxslotepow[n])
  17.                                 catecap2.append(maxslotecap[n])
  18.                                 catid2.append(slotidepow[n])
  19.                                 maxslotepow2[n]=0
  20.                                 print (maxslotepow) #maxslotepow est modifiée alors qu'elle ne devrait pas l'être
  21.                                 maxslotepow[n]=5
  22.                                 print (maxslotepow, " ", maxslotepow2) #idem pour maxlotepow2
  23.                                 maxslotecap2[n]=0
  24.                                 slotidepow2[n]=0 #la modification des variables originales se produit aussi pour les 2 autres cas
  25.                                 nbeg+=1
  26.                                 fin=1
  27.                     if nbeg==0 :
  28.                         explo=nslot
  29.                     else :
  30.                         explo+=nbeg

mood
Publicité
Posté le 23-11-2018 à 13:20:15  profilanswer
 

n°2324706
dede_sav
Posté le 23-11-2018 à 14:41:13  profilanswer
 

Bonjour,
 
Tes copies lignes 4-5-6 créent un lien entre la variable maxslotepow et maxslotepow2 ?
https://stackoverflow.com/questions [...] l-variable
 
Donc change pour :
maxslotepow2=maxslotepow[:]  
maxslotecap2=maxslotecap[:]
slotidepow2=slotidepow[:]

n°2324709
tesser4ct
Puissance 4
Posté le 23-11-2018 à 16:24:26  profilanswer
 

Top, merci de l'info, j'étais pas du tout au courant de ce fonctionnement dans python  
 
Ca ne marche toujours pas en faisant des slices, mais avec la fonction list() présentée dans ton lien, le problème est réparé, merci  [:charlest]


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  [Python] Tableaux qui s'actualisent en même temps

 

Sujets relatifs
[Python] Connection aux routeurs et détection d'erreurChangement de logo selon le temps
Python remplacer un caractère dans une chainePetit jeu en python
Python en finance - contrôle de gestionCode jeux du nombre aléatoire en python 3.6
[Python Tkinter]- Bataille NavalProgrammation récursive ou itérative
programmation python 
Plus de sujets relatifs à : [Python] Tableaux qui s'actualisent en même temps


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR