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

问题描述 投票:-1回答:2

我正在尝试编写一个查询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)
python random
2个回答
0
投票

你在每个循环上将整个行列表附加到你的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并在行列表上再次迭代。


0
投票

你要

     dictionary_list.extend(lines)

lines“取消嵌套”到你的dictionary_list中。

© www.soinside.com 2019 - 2024. All rights reserved.