我如何生成隨機數字,但有數字避免已使用的數字。 我有一個TXT文件,數千組數字,我需要生成一系列隨機數,同時避免這些。如何生成隨機數字,同時避免已使用的數字
IE,TXT - 0102030405
我的隨機數字需要避免這個數字。
請注意,如何將TXT 10位數字分成5個兩位數字? 那麼我怎麼能生成基於此的隨機數字。
我如何生成隨機數字,但有數字避免已使用的數字。 我有一個TXT文件,數千組數字,我需要生成一系列隨機數,同時避免這些。如何生成隨機數字,同時避免已使用的數字
IE,TXT - 0102030405
我的隨機數字需要避免這個數字。
請注意,如何將TXT 10位數字分成5個兩位數字? 那麼我怎麼能生成基於此的隨機數字。
您可以將以前找到的所有隨機數加載到字典中,然後只檢查字典中的new_random,以及是否嘗試新的隨機數。
對於第二方來說,你的十位數字存儲在變量ten_digits中。
ten_digits = '1234567890'
,你可以通過你使用數字作爲標識做
[x + y for x, y in zip(ten_digits[::2], ten_digits[1::2]
>>> ['12', '34', '56', '78', '90']
打破這一成5個兩位數字?你應該看看使用哈希表。
http://en.wikipedia.org/wiki/Hash_table
我並不十分熟悉Python,但我敢肯定有一個子功能,您可以把它(作爲參數)啓動子和要複製的字符數的指標。
如果您需要維護該文件(我認爲您要這麼做,爲了添加新的數字),我建議您使用純文本文件「忘記」並使用SQLite或任何其他支持的嵌入式數據庫在一個文件中,因爲你可能不想加載內存中的所有數字。
您希望從SQLite獲得的「功能」(或更好的說,數據結構)是一個B-Tree,因此您可以快速檢索數字。我這樣說,因爲你也可以嘗試找到一個實現B-樹的庫,然後你就不需要SQLite。
如果您的列表比較小,你可以將其加載到set並覈對:
random_number not in number_set
要拆分的數量,您可以使用切片:
s='0102030405'
n=2
result = [s[i:i+n] for i in range(0, len(s), n)]
你是什麼意思根據5位數字生成一個隨機數?你的意思是避免這些5位數字? – arunkumar
在旁註中,txt文檔中的所有數字均爲CSV。 他們看起來像這樣:「0102030405」1 「0202030405」4 – mike
是的,TXT號碼作爲一個整體,需要避免。 – mike