[英]Choosing random number from list, and then removing it?
假設我有一個包含一系列數字的單獨文本文件:
1
2
3
等等。 Python程序是否可以隨機選擇該文本文件中的一個數字,然后從文本文件中刪除該數字? 我知道有可能做到第一部分,但我正在努力與第二部分。
如果它有幫助,列表大約是180000個數字。 我很陌生。 我們的想法是隨機為玩家分配一個號碼,然后從列表中刪除該號碼,以便其他玩家無法獲得該號碼。
你真的有180,000名球員嗎? 如果沒有,反過來如何解決問題:
這比每次讀取,檢查和寫入大文件要快得多。 如果您的ID很大,則不會發生很多沖突。
您還可以優化流程,例如使用由今天的日期和隨機數組成的兩部分ID。 然后,您將保留每天的文件,並且只需要檢查與今天發布的ID的沖突。
我要說的是,你讀完整個文本文件,做你想做的任何改動,然后重寫文件的原始內容,這是我知道的最好方法
如果文件很小,請將整個內容讀入列表,從列表中刪除一個值,然后將新列表寫入臨時文件。 最后,將臨時文件重命名為原始文件名。
如果文件很大,請一次讀取一行文件,將值(一個除外)寫入臨時文件。 然后將臨時文件重命名為原始文件名。
就像dstromberg所說 ,如果文件很小,請查看文件IO上的文檔以及這個答案將列表寫入文件的策略。 請注意, writelines()
“不添加行分隔符”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.