如何修改生成程序以保存列表中的单词并使用random.choice()
选择它们以前执行import random
?
哪里出错?它无法正常工作
def generate_model(cfdist,word,num=15):
for i in range(num):
word=random.choice.im_class(cfdist
[word].keys())
>>> generate_model(cfd,'living')
答案 0 :(得分:1)
该代码有各种奇怪的东西:
def generate_model(cfdist,word,num=15):
您可以使用word作为在词典中查找的键。
word=
然后你改变它?您是否故意将一次随机查找的结果链接为下一次查找的关键字?
random.choice
如果您是故意链接,这是正确的,但是如果您想要来自同一dict
的大量单词,则需要random.sample
。
.im_class(
这完全没必要。只需将其称为random.choice(
即可。请查看random
docs
cfdist[word]
第一次获得cfdist
中的值,其值等于传入word
的值(在本例中为living
),然后键等于到那之后choice
的结果。那是你的意图吗?
.keys())
如果cfdist
中的每个值都是dict
。
现在,你说你想要
用于保存列表中的单词
但由于我不确定你到底想要什么,我会举两个例子。首先,我只会汇总这些词,但不会改变其他内容:
def generate_model(cfdist,word,num=15):
words = []
# you can add the starting word with words.append(word) here if you want
for i in range(num):
word=random.choice(cfdist[word].keys())
words.append(word)
return words
第二,我假设您只需要dict
中的15个随机单词而不重复:
def generate_model(cfdist,word,num=15):
return random.sample(cfdist[word].keys(), num)
然后以任何方式将其称为
>>> words = generate_model(cfd,'living')
获取单词列表。