私は、回答を取り込んで新しいリストに追加し、新しいリストが他のリストと同じかどうかを確認するスクリプトを作ろうとしています。これらのリストが同じ場合、whileループは中断されます。whileループで2つのリストを比較する方法
:各質問は繰り返さないでください。
は、ここに私のコードだ:私はまだランダムな質問を取得しています実行
import random
questions = ['a','b','c','d','e']
answered_q = []
while len(answered_q) < len(questions):
question = random.choice(questions)
answered_q.append(question)
raw_input = str(input(question + ": "))
if sorted(questions) == sorted(answered_q):
break
が、リストは同じ内容を持っている時にコードがないブレークを行います。
出力:
['b','c','b,'d','d']
誰もが、それは素晴らしいことだ助けることができれば! ありがとうございます!
「同じ」という定義は何ですか?同じ_contents_を意味する場合は、セットを使用する必要があります。現在の実装では、_と_の両方の内容がテストされます。 – Delioth
まあ、 'random.choice'が同じ要素を複数回返してから、それぞれを1回実行すると、2つのリストは決して同じではありません。代わりにセットを使用することもできます。 –
リストは同じではないようです。 2番目のリストに2つのbsがあることに注目してください。これは、 'random.choice(questions)'が同じ結果を複数回生成することがあるためです。 –