我尝试创建一个程序,从包含10个以上单词的文本文件中选择10个单词。出于程序的目的,从文本文件导入这10个单词时,我不能两次导入相同的单词!目前我正在使用一个列表,但似乎出现了相同的单词。我对集合有一些了解,并知道它们不能两次保持相同的值。截至目前,我对如何解决这个问题一无所知,我们将非常感激。谢谢!
请在下面找到相关代码! - (p。<Type>
基本上是打开文件对话框)
FileSelection
答案 0 :(得分:1)
让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)
一遍又一遍地绘制相同的单词。但也许你可以根据它做一些有用的东西。
答案 1 :(得分:-1)
不确定我理解你是对的,但是,她和 第3行:&#34;如果wrdcount&#34; 。 。 dit你给wrdcount一个值吗? 也许你想在下面的一行?:
wordset = {}
wrdcount = len(wordset)
while wrdcount < 10:
# do some work to update the setcode here
# when end-of-file break