所以我开始谷歌的python课程,到目前为止,任何练习都没有那么大的困难。但是,我正在努力解决这个问题。我已经谷歌搜索了两个结果,并希望听到任何建议。
这是练习:
“读入命令行中指定的文件。 在空格上执行简单的split()以获取文件中的所有单词。 它不是逐行读取文件,而是更容易阅读 将它分成一个巨大的字符串并将其拆分一次。
构建一个“模仿”字典,用于映射文件中出现的每个单词 到文件中紧跟该单词后面的所有单词的列表。 单词列表可以是任何顺序,应包括 重复。因此,例如键“和”可能具有列表 [“then”,“best”,“then”,“after”,...]列表 所有在文本中“和”之后出现的单词。 我们会说空字符串是之前的字符串 文件中的第一个单词。
使用模仿词典,随机发射相当容易 模仿原文的文字。打印一个单词,然后看 接下来可能会出现什么词,随机选择一个 接下来的工作。 使用空字符串作为第一个词来填充东西。 如果我们遇到一个不在字典中的单词, 回到空字符串以保持活动。
注意:标准的python模块'random'包含一个 random.choice(list)方法,用于选择随机元素 来自非空列表。
为了好玩,请将您的程序作为输入提供给自己。 可以努力让它在70左右的线路中放置 列,所以输出看起来更好。“
以下是提供的代码:
import random
import sys
def mimic_dict(filename):
"""Returns mimic dict mapping each word to list of words which follow it."""
def print_mimic(mimic_dict, word):
"""Given mimic dict and start word, prints 200 random words."""
def main():
if len(sys.argv) != 2:
print 'usage: ./mimic.py file-to-read'
sys.exit(1)
dict = mimic_dict(sys.argv[1])
print_mimic(dict, '')
if __name__ == '__main__':
main()
感谢所有帮助!
答案 0 :(得分:1)
这是打印模拟功能。
你的评论中有点不清楚你是否需要任何帮助来达到这一点:
请注意random.choice
内置的使用。很漂亮。
import random
def print_mimic(mimic_dict, word):
l = []
for i in range(200):
word = random.choice(mimic_dict.get(word, ''))
l.append(word)
print(' '.join(l))