[英]importing random words from a file without duplicates Python
我正在尝试创建一个程序,该程序从包含10个以上单词的文本文件中选择10个单词。 出于程序目的,从文本文件导入这10个单词时,我不能两次导入相同的单词! 目前,我正在为此使用一个列表,但是似乎出现了相同的单词。 我对集合有一定的了解,知道它们不能两次拥有相同的值。 到目前为止,我对如何解决此问题一无所知,将不胜感激。 谢谢!
请在下面找到相关代码! -(ps FileSelection
基本上是打开文件对话框)
def GameStage03_E():
global WordList
if WrdCount >= 10:
WordList = []
for n in range(0,10):
FileLines = open(FileSelection).read().splitlines()
RandWrd = random.choice(FileLines)
WordList.append(RandWrd)
SelectButton.destroy()
GameStage01Button.destroy()
GameStage04_E()
elif WrdCount <= 10:
tkinter.messagebox.showinfo("ERROR", " Insufficient Amount Of Words Within Your Text File! ")
将WordList
set
:
WordList = set()
然后update
该集合,而不是追加:
WordList.update(set([RandWrd]))
当然, WordList
对于集合来说是个坏名字。
但是,还有其他一些问题:
WordList
将包含10个项目。 可以通过将循环更改为来解决后者:
while len(WordList) < 10:
FileLines = open(FileSelection).read().splitlines()
RandWrd = random.choice(FileLines)
WordList.update(set([RandWrd]))
但是,您将不得不考虑根本不存在10个不同的单词的情况。
即使那样,循环仍然会非常低效,因为您可能会使用random.choice(FileLines)
一遍random.choice(FileLines)
绘制相同的单词。 但是也许您可以从中得出一些有用的信息。
不确定我是否理解正确,但是,第3行:“ if wrdcount”。 。 您在哪里给wrdcount一个值? 也许您打算沿着以下方向进行操作?:
wordset = {}
wrdcount = len(wordset)
while wrdcount < 10:
# do some work to update the setcode here
# when end-of-file break
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.