首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从文本文件的列表中获取随机单词?

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

Stack Overflow用户
提问于 2019-12-13 12:30:38
回答 3查看 85关注 0票数 0
代码语言:javascript
运行
复制
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)

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-12-13 12:35:49

这是有效的

代码语言:javascript
运行
复制
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)

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

票数 0
EN

Stack Overflow用户

发布于 2019-12-13 12:34:05

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

代码语言:javascript
运行
复制
import random
LIST=[]
with open('samplefile.txt','r') as f:
    LIST=f.read().split()
answer = random.choice(LIST)
print(answer)

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

代码语言:javascript
运行
复制
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)
票数 0
EN

Stack Overflow用户

发布于 2019-12-13 12:37:23

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

试试这个:

代码语言:javascript
运行
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59316158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档