繁体   English   中英

如何从文本文件的列表中获取随机单词?

[英]How do I get a random word from a list from a text file?

import random

with open('words.txt','r') as f:
    for line in f:
        for word in line.split():
            LIST = []
            LIST.append(word)
answer = random.choice(LIST)

print(answer)

我的文本文件由几个词组成,文本文件中的最后一个词总是被选为答案。 文本文件中的单词由空格分隔。 我拆分文本错了吗? 如何从列表中随机获取一个单词?

试试这个更优化的解决方案,而不是创建多个循环

import random
LIST=[]
with open('samplefile.txt','r') as f:
    LIST=f.read().split()
answer = random.choice(LIST)
print(answer)

对于您的解决方案,您只需将 LIST=[] 放在循环之外

import random
LIST = []
with open('samplefile.txt','r') as f:
    for line in f:
        for word in line.split():
            LIST.append(word)
answer = random.choice(LIST)

print(answer)

这是工作

import random

LIST = []
with open('words.txt','r') as f:
    for line in f:
        for word in line.split():
            LIST.append(word)
answer = random.choice(LIST)

print(answer)

您每次都在创建列表,因此它返回了您创建的最后一个列表

每次读取一行时,您都在循环内初始化列表,这会导致列表被截断,最后只包含一个值。 顺便说一句,不要为变量使用 Python 方法名称。

尝试这个:

import random

myList = list()
with open('words.txt','r') as f:
    for line in f:
        for myWord in line.split():
            myList.append(myWord)

answer = random.choice(myList)

print(answer)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM