• # Mes conseils...

    Posté par (Mastodon) . En réponse au message Avent du Code, jour 23. Évalué à 2.

    Ne pas modifier un set() pendant qu'on itère ce même set().

    Vérifier notre index d'itération, des fois qu'il indique la dernière itération a avoir vue des changements plutôt que la première itération où personne n'a bougé.

    Après 3h à traquer un bug pourri (j'ai vraiment le cerveau en rade), une simple simulation avec une jolie modélisation fonctionne sans lourdeur, pas de données extraordinaires ni de surcharge CPU ici, juste de la méthode, des intersections d'ensembles, et une jolie image.

    Titre de l'image

    for elf in elves:
     if elf.choice in ok:
     elves.remove(elf)
     elves.add(elf.choice)

    Hein que c'est pourrave et qu'on voit pas vite les effets du bidule quand ça fonctionne sur deux rounds de validation ?
    Bref : for elf in elves.copy() pour faire vite.
    Ou mieux :

    move = {elf for elf in elves if elf.choice in ok}
    moveto = {elf.choice for elf in move}
    elves.difference_update(move)
    elves.update(moveto)
    • Yth.