我正在尝试编写一个查询word文档的程序,并从该文档中随机返回一行。目前,即使我应用random.choice(),也会返回文档中的每一行。关于如何纠正这个问题的任何想法?
我在列表上运行了一个len()并确认它正在返回多个变量,但仍然返回整个列表。
import random
filename = 'happy document.txt'
dictionary_list = []
with open(filename) as file_object:
lines = file_object.readlines()
for l in lines:
lines = [l.strip('\n') for l in lines]
dictionary_list.append(lines)
random_choice = random.choice(dictionary_list)
print(random_choice)
你在每个循环上将整个行列表附加到你的dictionary_list
,所以无论你选择哪个项目,它都是整个列表......
你可以做:
import random
filename = 'happy document.txt'
with open(filename) as file_object:
lines = [line.strip('\n') for line in file_object]
random_choice = random.choice(lines)
print(random_choice)
作为旁注,for line in file_object
迭代文件的行,您不需要首先使用readlines
并在行列表上再次迭代。
你要
dictionary_list.extend(lines)
将lines
“取消嵌套”到你的dictionary_list中。