[英]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.