Note that there are some explanatory texts on larger screens.

plurals
  1. POPython - list.remove(x) x not in list
    primarykey
    data
    text
    <p>I am trying to create a simple program in Python 3.3 that takes a list of four names, and randomly assigns them to another person in the list. For example, if the names were John, Aaron, Lydia, and Robin:</p> <p>John goes first and selects a name. He cannot draw his own; if he does, he puts it back and draws again. Say John drew Robin's name. Robin's name would be eliminated from the pool. Next is Aaron's turn to draw. He draws John. John's name is eliminated. etc. until all names are assigned.</p> <p>I created a list with four names and assigned each one a value 1-4. However, i'm running into an issue when removing from a list, saying the value does not exist.</p> <p>list.remove(x) : x not in list.</p> <p>it looks something like this:</p> <pre><code>def drawNames(): import random John=1 Aaron=2 Lydia=3 Robin=4 validNames=[John, Aaron, Lydia, Robin] nameDrawn=random.choice(validNames) def draw(): nameDrawn=random.choice(validNames) #John's Draw: draw() if nameDrawn != 1: if nameDrawn == 2: print("John drew: Aaron") validNames.remove(2) elif nameDrawn == 3: print("John drew: Lydia") validNames.remove(3) elif nameDrawn == 4: print("John drew: Robin") validNames.remove(4) #Aaron's Draw: draw() if nameDrawn !=2: if nameDrawn ==1: print("Aaron drew: John") validNames.remove(1) elif nameDrawn ==3: print("Aaron drew: Lydia") validNames.remove(3) elif nameDrawn ==4: print("Aaron drew: Robin") validNames.remove(4) #Lydia's Draw: draw() if nameDrawn !=3: if nameDrawn ==1: print("Lydia drew: John") validNames.remove(1) elif nameDrawn ==2: print("Lydia drew: Aaron") validNames.remove(2) elif nameDrawn ==4: print("Lydia drew: Robin") validNames.remove(4) #Robin's Draw: draw() if nameDrawn !=4: if nameDrawn ==1: print("Robin drew: John") validNames.remove(1) elif nameDrawn ==2: print("Robin drew: Aaron") validNames.remove(2) elif nameDrawn ==3: print("Robin drew: Lydia") validNames.remove(3) drawNames() </code></pre> <p>i've also tried using the names rather than the numeric values, which yielded the same error.</p> <p>I also feel like this is an inefficient scheme. If you have a better suggestion I'd be much obliged. </p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload