Python3 實現(xiàn)隨機生成一組不重復(fù)數(shù)并按行寫入文件
筆主在做一個項目要生成一組隨機有序的整型數(shù)字,并按行輸出到文本文件使用,恰好開始學(xué)習(xí)Python3,遂決定直接使用Python3解決
思路:與隨機數(shù)相關(guān)的函數(shù)都要使用到random這個系統(tǒng)庫,查看相關(guān)的開發(fā)文檔發(fā)現(xiàn)random庫下面有個sample(seq,n)函數(shù)比較符合,能在在一個序列中隨機選擇n個不重復(fù)的數(shù),并返回一個list,接下來就是將一個list按行輸出到一個文本文件中
過程:
1、導(dǎo)入random庫
import random
2、生成一個自己自己想要的范圍的序列,筆者是需要在1~300000隨機選擇900個數(shù)字,遂想使用range()函數(shù)生成一個序列,但是在使用的過程就懵逼了,例如range(1,100),返回的不是一個list,直接返回range(),經(jīng)過查閱開發(fā)文檔才 發(fā)現(xiàn)python2中的range返回的是一個list,python3中的range返回的是一個迭代值,for i in range(1,10)在python2和python3中均可以使用,但是要生成1-100的列表,就需要用list(range(1,100))。
(在不清楚Python2和Python3的一些函數(shù)和語法的差別時常因此而走不少彎路,希望和我一樣的初學(xué)者在學(xué)習(xí)Python時要時常注意這一點),于是生成范圍序列:
seq = list(range(1,300000))
3、接著即使用sample()函數(shù)生成一個隨機序列:
sample在幫助文檔的解釋:random.sample(population,k)
Return a k length list of unique elements chosen from the population sequence or set. Used forrandom sampling without replacement.
a = random.sample(seq,900)
4、然后再對輸出的list排下序(如果有需要的話,否則可以省略這一步):
a.sort()
5、寫入文件,因為要換行輸出所以輸出前需要對list進行處理加入換行符
R='\n'.join(str(i) for i in a)
6、寫入到文件
open('test.txt','w').write(R)
總結(jié):
Python作為一門解釋型語言相對自己之前經(jīng)常使用的C/C++相對要方便,相對簡單的工作直接在bash或者CMD下可直接使用,方便快捷,可以提高工作效率。
以上這篇Python3 實現(xiàn)隨機生成一組不重復(fù)數(shù)并按行寫入文件就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
創(chuàng)建虛擬環(huán)境打包py文件的實現(xiàn)步驟
使用虛擬環(huán)境,可以為每個項目創(chuàng)建一個獨立的Python環(huán)境,每個環(huán)境都有自己的庫和版本,從而避免了依賴沖突,本文主要介紹了創(chuàng)建虛擬環(huán)境打包py文件的實現(xiàn)步驟,感興趣的可以了解一下2024-04-04python數(shù)據(jù)庫批量插入數(shù)據(jù)的實現(xiàn)(executemany的使用)
這篇文章主要介紹了python數(shù)據(jù)庫批量插入數(shù)據(jù)的實現(xiàn)(executemany的使用),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04python中import,from……import的使用詳解
這篇文章主要介紹了python中import,from……import的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02Python實現(xiàn)Socket通信建立TCP反向連接
本文將記錄學(xué)習(xí)基于 Socket 通信機制建立 TCP 反向連接,借助 Python 腳本實現(xiàn)主機遠程控制的目的。感興趣的可以了解一下2021-08-08Keras模型轉(zhuǎn)成tensorflow的.pb操作
這篇文章主要介紹了Keras模型轉(zhuǎn)成tensorflow的.pb操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07Python?RawString與open文件的newline換行符遇坑解決
這篇文章主要為大家介紹了Python?RawString與open文件的newline換行符遇坑解決示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-10-10