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)我的文本文件由几个单词组成,文本文件中的最后一个单词总是被选为答案。文本文件中的单词由空格分隔。我是不是拆分错了?如何从列表中获取随机单词?
发布于 2019-12-13 12:35:49
这是有效的
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)您每次都在创建列表,因此它将返回您创建的最后一个列表
发布于 2019-12-13 12:34:05
尝试这个更优化的解决方案,而不是创建多个循环
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)发布于 2019-12-13 12:37:23
每次读取一行时,都会在循环中初始化列表,这会导致列表被截断,最后只包含一个值。顺便说一句,不要对你的变量使用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)https://stackoverflow.com/questions/59316158
复制相似问题