在Python中列出10件事,并显示9项,然后下次显示时,显示之前未显示的项
我在words.txt中列出了10个单词在Python中列出10件事,并显示9项,然后下次显示时,显示之前未显示的项,python,random,Python,Random,我在words.txt中列出了10个单词 import random with open("words.txt") as f: words = random.sample([x.strip() for x in f], 9) grouped = [words[i:i+3] for i in range(0, len(words), 3)] for l in grouped: print ("").join("{:<10}".format(x) for x in l) 随
import random
with open("words.txt") as f:
words = random.sample([x.strip() for x in f], 9)
grouped = [words[i:i+3] for i in range(0, len(words), 3)]
for l in grouped:
print ("").join("{:<10}".format(x) for x in l)
随机导入
以open(“words.txt”)作为f:
words=random.sample([x.strip()表示f中的x],9)
分组=[单词[i:i+3]表示范围内的i(0,len(单词),3)]
对于分组中的l:
打印(“”)。加入(“{:洗牌列表,选择前9项(它们将以随机顺序排列),然后用剩余的项替换其中一项:
with open("words.txt") as f:
words = [x.strip() for x in f]
random.shuffle(words)
first_9 = words[:9]
last = words[-1]
# ...
words[random.randrange(9)] = last
这将首先读取文件中的所有单词,并用于将所有项目按随机顺序排列。试试这个
with open('words.txt', 'r') as f:
myWords = [words.strip() for words in f]
random.shuffle(myWords)
for word in range(len(myWords)-1):
print(word) # prints 9 words
randomWord=randint(0,8)
myWords[randomWord]=myWords[9]
for items in myWords:
print(items)
嗯,要显示丢失的项目,您需要读取整个文件。为什么不将其读入一个列表(您当前拥有的[x.strip()for x in f]理解),对其进行采样并打印样本,然后打印整个列表?@MartijnPieters我现在修复了它,我想file.readlines()
包括换行符,您需要将它们去除。为什么在myNames[:-1]
上循环时要使用range()
呢?我修复了这些词。去除()我使用range是因为我还是python的初学者,我不知道你刚刚做了什么。我只是尽我所能帮助他。是的,我正在给你反馈如何进一步改进python。