我希望我的程序能够从字典中的列表中随机打印出一个单词,但是我似乎无法找到正确的语法来实现。我尝试使用popitem()从列表中获取一个随机值,但它似乎并没有起作用。下面是我的代码:
import random
thesaurus = {
"happy":["glad", "blissful", "ecstatic", "at ease"],
"sad" :["bleak", "blue", "depressed"]
}
# input
phrase = input("Enter a phrase: ")
# turn input into list
part1 = phrase.split()
part2 = list(part1)
newlist = []
for x in part2:
s = thesaurus.get(x, x)
newlist.append(s)
print (newlist)
例如,如果输入为:
i am happy
预期输出应该是:
i am glad
或者从字典列表中选择任意随机单词。
但是,目前我的输出结果如下:
['i', 'am', ['glad', 'blissful', 'ecstatic', 'at ease']]
我知道有另一个帖子涉及到这个问题,但它似乎没有解决这个具体的问题。
任何帮助都将不胜感激!
编辑:
如果我把这个公式扩展到适用于一个包含长列表单词的导入文件,我需要如何修改代码?
newDict = {}
with open('thesaurus.txt', 'r') as f:
for line in f:
splitLine = line.split()
newDict[(splitLine[0])] = ",".join(splitLine[1:])
print ("Total words in thesaurus: ", len(newDict))
# input
phrase = input("Enter a phrase: ")
# turn input into list
part1 = phrase.split()
part2 = list(part1)
# testing input
newlist = []
for x in part2:
s = newDict[x].pop() if x in newDict else x
s = random.choice(newDict[x]).upper() if x in newDict else x
newlist.append(s)
newphrase = ' '.join(newlist)
print (newphrase)
“thesaurus”文件中的行文本示例:
abash,humility,fear
thesaurus.get(x, x)
的意思是什么? - ᴀʀᴍᴀɴx
是默认值。该语句的本质意思是:“获取与键x
关联的值,如果没有找到任何值,则返回x
”。 - smac89