【发布时间】:2020-11-18 22:20:17
【问题描述】:
我想在每次回答一个单词时选择一个新单词,但即使在使用 random.shuffle() 之后,我仍面临从单词列表中获取一个新的随机单词的问题。
我的回答:
-
通过从 csv 文件中提取键为德语、值为英语来创建德语单词的字典(键、值)
-
您想从字典中显示一个随机值并要求用户输入含义
import csv import random play_game = input(' Press \'y\' for yes and \'n\' for no') while play_game == 'y': with open('/Users/pydev97/Desktop/wordlist.csv', mode='r') as csv_file: csv_reader = csv.DictReader(csv_file) for row in csv_reader: keys = row['MEANING'] values = row['WORDS'] new_dict = dict({keys : values}) keys_list = list(new_dict.keys()) # converting dict values to a list random.shuffle(keys_list) for word in keys_list: display = '{}' print(display.format(word)) user_answer = input('Answer : ') if user_answer == new_dict[word]: print('You got it right') else: print('You got it wrong')
我得到的输出:
Press 'y' for yes and 'n' for noy
to participate
Answer : dd
You got it wrong
to participate
Answer : es
You got it wrong
to participate
Answer : mit machen/teil nehmen
You got it right
to participate
Answer :
【问题讨论】:
-
I'm facing issue with getting a new random word from the word list请解释一下这个问题,而不是说你有它。 -
您的字典中只有一个条目。您在每个循环中重新创建
new_dict。 -
@RandomDavis 所以我的意思是正如您在代码中看到的那样,我使用 random.shuffle 命令来打乱我的列表,因此每次我回答问题时都会给我一个新词。但不知何故,同一个词不断被问到,而且它没有被打乱。我希望在每次回答后都询问新词。
-
也许你可以发一个minimal reproducible example?这样我们就可以粘贴你的代码,运行它,然后看到和你一样的问题。
-
@RandomDavis 好的,所以我确实尝试了最小的可重现示例,令人惊讶的是它有效!我创建了一个小字典,如下所示,每次我回答一个新词时都会被问到。但是为什么我无法通过导入的 csv 文件获得相同的输出?有什么问题吗?
标签: python python-3.x dictionary random