擅长:python、mysql、java
<p>以下内容可能有助于您了解代码真正在做什么,而不是为什么它的行为不符合预期:</p>
<pre><code>import random
# Stores Question, choices and answers
questions = {'key1': ['text1','ans1'], 'key2': ['text2','ans2'], 'key3':['text3','ans3']}
for i in range (0,10):
sample_question = random.sample(list(questions.keys()), 3)
print(sample_question)
</code></pre>
<p>一种可产生以下结果的样本输出:</p>
<pre><code>['key2', 'key3', 'key1']
['key3', 'key1', 'key2']
['key3', 'key1', 'key2']
['key3', 'key1', 'key2']
['key1', 'key2', 'key3']
['key3', 'key2', 'key1']
['key1', 'key3', 'key2']
['key3', 'key2', 'key1']
['key1', 'key3', 'key2']
['key1', 'key2', 'key3']
['key3', 'key1', 'key2']
</code></pre>
<p>换言之,你实际上是在随机挑选一个问题,而不是从你的问题列表中删除这个问题。这就是为什么你有重复。这就像洗牌一副牌,指向其中一张,然后再洗牌,再指向其中一张-甚至没有从牌堆中移除任何东西。你知道吗</p>
<p>(我知道这并不能提供一个真正的“答案”,但您似乎想理解为什么您的代码不能提供答案表现得好。杰克的答案很好)</p>