我有一个Python字典,其中包含格式为German:English的单词对。 例如: dict {" eigentlich":"基本上"},e.t.c
有没有一种枚举对的方法,这样我就可以随机将一个键作为问题打印给用户(在for循环中使用rand?)?
答案 0 :(得分:2)
你的意思是你的字典中随机的德语:英语单词?如果你愿意,你可以这样做:
import random
dictionaryName ={ '''BLAH BLAH BLAH''' }
print random.choice(dictionaryName.keys())
这将打印字典中任意两个单词的第一个单词,如果你在字典中有这个单词
{"ONE" : "TWO"}
random.choice()选择它会打印“ONE”。只是让你知道。对不起,如果这不能回答你的问题。
答案 1 :(得分:1)
在我看来,我们可以在答案方面做得更好,所以这是我的尝试。
首先我们需要导入random
模块,因为我们将在dict键列表中使用choice
函数:
import random
接下来我们需要一些dict格式的数据,我从一个到十的网站翻译了一个从英语到德语的翻译,并将它添加到我们的dict用于演示目的。
my_dict = {"eigentlich":"basically", 'Eins': 'one',
'Zwei': 'two', 'Drei': 'three', 'Vier':
'four', 'fünf': 'five', 'sechs': 'six',
'sieben': 'seven', 'acht': 'eight',
'neun': 'nine', 'zehn': 'ten'}
最后,您需要一个函数来调用用户:
def quiz_me(n=20):
quiz_base = list(my_dict.keys()) # casting as list for python 3 compatibility
for _ in range(n):
key = random.choice(quiz_base)
i = raw_input(key + ': ')
if i == my_dict[key]:
print 'correct!'
else:
print 'incorrect'
这就是调用函数时输出的样子:
>>> quiz_me()
fünf: five
correct!
zehn: ten
correct!
sechs: six
correct!
eigentlich: basicly
incorrect
eigentlich:
请注意,每个都是随机选择的,最后一行恰好是随机选择的,不是因为我之前没有错误地回答。