Random.Choice()返回整个字符串

时间:2019-03-08 21:32:58

标签: python random

我正在尝试编写一个程序来查询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)

2 个答案:

答案 0 :(得分:0)

您想要

     dictionary_list.extend(lines)

lines“取消嵌套”到您的dictionary_list。

答案 1 :(得分:0)

您在每个循环中将整个行列表附加到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会在文件的行上进行迭代,您无需先使用{{1}}并在行列表中再次进行迭代。