我正在處理一個問題,我必須找到一個數字是否落在一定範圍內。但是,由於我處理的文件有數十萬行,因此問題很複雜。高效的Python方式來處理兩個巨大的文件?
下面我嘗試用盡可能簡單的語言來解釋問題。
這裏是我的輸入文件的簡要說明:
文件Ranges.txt有一定的範圍,其最小值和最大值是製表符分隔。
10 20
30 40
60 70
這可以有大約10,000,000個這樣的行與範圍。
注意:範圍從來沒有重疊。
文件Numbers.txt有一個數字列表和與每個數字相關的一些值。
12 0.34
22 0.14
34 0.79
37 0.87
依此類推。再次有成千上萬的這樣的線路有數字和它們的相關值。
我希望做的是採取從Numbers.txt每一個數字並檢查它是否在Ranges.txt落入任何範圍。
對於所有這些數字在一個範圍內,我必須得到他們相關值的平均值(即每個範圍的平均值)。
對於如。在Numbers.txt上面的示例中,有兩個數字34和37落在範圍30-40內Ranges.txt,因此對於範圍30-40,我必須計算相關值的平均值(即平均值0.79和0.87),即0.82
我的最終輸出文件應該是Ranges.txt,但所有數值的相關值的均值落入每個範圍內。喜歡的東西:
Output.txt的
10 20 <mean>
30 40 0.82
60 70 <mean>
等。
希望得到關於如何在Python中有效編寫的任何幫助和想法。
你有什麼試過?我認爲你應該打開文件,將它們轉換成列表,解析它們,然後輸出到output.txt。 – bozdoz
我已經試過這樣做了,但是由於這兩個文件中有數百萬這樣的行,所以速度很慢。當數字被發現落在給定範圍內時,我也嘗試使用「繼續」,以便跳過其他數字並且過程變得更快,但是這仍然非常緩慢。 – user1691717
這兩個文件是否分類?範圍可以重疊嗎?如果可以的話,那麼期望的結果是什麼?首先合併範圍?將數字分配給它出現的所有範圍? –