2017-01-23 11 views
0

たとえば、私はこのミニ「Hunger Games」を持っていますが、「Katniss Kills Katniss」のような結果を得ることもあります。それをどうやって止めるの?random.choiceを繰り返さないようにするにはどうすればよいですか?

import random 

part = ("Peeta", "Katniss", "Patrick", "Edward Snowden") 

p1 = random.choice(part) 
p2 = random.choice(part) 
p3 = random.choice(part) 
p4 = random.choice(part) 

acon = ("kills", "kisses", " stalks ") 

happ = p1 + ' ' + random.choice(acon) 

print happ 
+1

'random.shufle(part)'とすると、ランダムな順序で要素を持つリストが得られます。次に要素を1つずつ取得できます – furas

+0

http://stackoverflow.com/q/32368129/139010 –

+0

@vaultahあなたのリンクに含まれていない便利な回答がある場合は、 – f5r5e5d

答えて

0

あなたは、単に行うことができます。

part2 = part[:] #This will create a copy 
part2.remove(p1) 
happ = p1 + ' ' + random.choice(acon) + ' ' + random.choice(part2) 

これは、部品リストから既に選ばれた名前のP1を削除します。オリジナルは影響を受けていません。変更されたリストはpart2です。

+0

'part.remove'は' part' *から 'p1'を永久に削除します*。 – vaultah

+0

ああ。私のせい。ごめんなさい。私は私の質問を編集しました。あなたは今それをupvoteしていただけますか?私は今の答えが投票されるべきであり、古い答えが投票されるべきではないので頼むだけです。ハッピーコーディング;-) – fameman

+0

'part2.remove(p1)'これも 'part'から削除します。 'part2 = part [:]' – furas

関連する問題