Bonjour à tous (et meilleurs vœux 2x20),
Dans le cadre d'un exercice, je faire une petite simulation d'une salle d'attente constituée d'une rangée de n sièges tous identiques. Un siège "0" signifie qu'il est libre, un siège "1" signifie qu'il est occupé. La rangée de sièges est définie par une liste de n éléments 0 et 1.
Parmi les tâches que je dois programmer , il est en une qui doit simuler le choix au hasard d'un siège et le tester pour savoir s'il est libre ou pas pour pouvoir l'occuper. Pour cela j'utilise l'instruction random.choice(Rangee) mais je m'aperçoit que dés au moins deux éléments de la liste sont identique, la choix "aléatoire" ne se fait plus … le même siège est toujours choisi.

Pour illustrer cette anomalie:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
import random
Rangee=range(0,6)
print Rangee
for i in range(0,10):
    a=random.choice(Rangee)
    print a
    print Rangee.index(a)
Là OK, j'ai bien un tirage au hasard. Mais dés que la liste présente deux éléments identiques ou plus , par exemple:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
import random
Rangee=[0, 1, 0, 1, 0, 0]
print Rangee
for i in range(0,10):
    a=random.choice(Rangee)
    print a
    print Rangee.index(a)
Là NON OK: seuls les deux premiers sièges de la liste sont choisis (cela est vu en affichant le rang du siège choisi).

Pourriez vous m'éclairer sur cette anomalie (si cela en est une !) et comment devrais-je modifier l'instruction pour que le choix aléatoire se fasse sur la liste entière.
Merci d'avance.