質問: random.randint(1,ppl) if temp not in randList: randList.append(temp) x += 1 print randList ``` ### 試したこと for文の中のif文を消して、重複を気にせずそのままリスト化すると設定回数行われたのでif文が原因ということまではわかりました。
回答: 結果がおかしいのは `for x in xrange(ppl):` とすると `if temp not in randList:` の結果が `False` でリスト**randList** に値が追加されない時も含めて、ループが **ppl** 回しかまわらない為です。 このアルゴリズムで行いたいのであれば、 `for x in xrange(ppl):` の部分を `while len(randList) != ppl:` 等として、**randList**のサイズが**ppl**になるまでループを回すとよいのではないでしょうか。 また、random パッケージにはリストをシャッフルする `random.shuffle()`という関数があるので ``` import random ppl = input() randList = range(ppl) random.shuffle(randList) print randList ``` と書くこともできますよ