Python字典随机键打印

时间:2014-05-27 03:13:29

标签: python random dictionary printing

我有一个Python字典,其中包含格式为German:English的单词对。 例如:     dict {" eigentlich":"基本上"},e.t.c

有没有一种枚举对的方法,这样我就可以随机将一个键作为问题打印给用户(在for循环中使用rand?)?

2 个答案:

答案 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: 

请注意,每个都是随机选择的,最后一行恰好是随机选择的,不是因为我之前没有错误地回答。