にリストを変更します次の機能を使ってカードを選んでデッキから取り出します。Pythonの:</p> <p>私は大きなリストにカードを持っている、と私:私は私のプログラミングのスキルを少し改善するために、カードゲームのシミュレーションを作成しようとしています、と私は、次のような問題で立ち往生していますのためにループ
cards= [........(big list of cards here in string format).......]
def Pickacard(x):
rand=random.randint(0,len(x)-1)
t=int(x[rand])
del(x[rand])
return t
次の繰り返しを使用すると、デッキは更新されません。代わりに、カードがピックされるたびに、すべてのループで「テスト=カード」を設定して、リストを元のものに戻すように設定しても、デッキは1アイテム短くなります。
for i in range(200):
test=cards
Pickacard(test)
print(test)
デッキには208枚のカードがあり、デッキが更新された場合、(印刷テスト)207枚のカードのリストが表示されます。代わりに私は8枚のカードのリストを得る。私はこれが起こるのは....テスト=カード....ループの外にあった場合だけです。
リストをコピーリストをコピーしてくださいする方法の詳細を見ることができます。例えば'test = list(cards)'です。あなたは現在、同じリストへの参照を渡しています。あなたがそれから削除するとき。この変更は、そのリストを参照するすべてのインスタンスで表示されます。 –