Problème de liste de dictionnaires
Evan17
-
yg_be Messages postés 24281 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 24281 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour, j'essaie de coder un petit programme qui prend en entrée des tableaux excel sur des capacités et des ressources à allouer pour ressortir toutes les allocations possibles (arrangements). Après plusieurs, boucle plutôt prise de tête je pensais toucher au but. Je range chaque nouvelle allocation dans un dictionnaire ( un dico = 1 allocation), puis je souhaite ranger tous ces dictionnaires dans une grande liste pour faciliter la sortie. Dans la boucle, les dictionnaires (=allocations) semblent cohérentes mais une fois rangés dans la liste ils ressortent tous identiques... je m'arrache les cheveux... Quelqu'un a une idée ?
Indications: - alloc est un dictionnaire contenant une première allocation simple que je compte changer pour les avoir toutes
-
Indications: - alloc est un dictionnaire contenant une première allocation simple que je compte changer pour les avoir toutes
-
switch = []
for aff in alloc.items(): #on change le dico en list parce que c'est plus pratique
u = []
for i in range(len(aff[1])):
u.append(aff[1][i])
switch.append(u)
def list_to_dict(list): #une fonction qui change une liste en dico
dic = {}
for i in range(1,feuille_lignes.nrows):
dic[feuille_lignes.cell_value(rowx=i,colx=0)] = list[i-1]
return(dic)
n = len(switch)
list_alloc = []
list_alloc.append(alloc)
for i in range(n):
for j in range(i+1,n):
for h in range(len(switch[j])):
for p in range(len(switch[i])):
v=[]
x = switch[i][p]
switch[i][p] = switch[j][h]
switch[j][h] = x
v = list_to_dict(switch) #apres un changement on a une nouvelle allocation donc on la store dans un dico
print(v)
list_alloc.append(v) # que l'on ajoute à la liste des allocs
print(list_alloc)
Configuration: Windows / Chrome 89.0.4389.90
A voir également:
- Problème de liste de dictionnaires
- Liste déroulante excel - Guide
- 38 dictionnaires et recueils de correspondance - Télécharger - Dictionnaires & Langues
- Liste code ascii - Guide
- Liste déroulante en cascade - Guide
- Liste de diffusion whatsapp - Guide
1 réponse
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 585
bonjour, ne penses-tu pas utile de partager un programme complet que nous pouvons tester?
la ligne 23 me semble superflue.
la ligne 23 me semble superflue.
list[i-1] est donc une liste de listes.
en ligne 12, tu mémorises donc une référence vers cette liste de listes.
et ensuite, en lignes 25 et 26, tu modifies le contenu de cette liste de listes.
https://docs.python.org/fr/3/library/copy.html