- くだすれPython(超初心者用) その26 [転載禁止]©2ch.net
409 :デフォルトの名無しさん[]:2015/07/10(金) 21:47:28.48 ID:ClCVGawJ - >>403
offsetを記録してfseek使ってって思ったけど、 単純には無理そう。 2万個の要素を持つlist, tupleで160kbのmemoryが必要だ。 >>> L = [None] * 20000 >>> L.__sizeof__() 160040 >>> tup2 = tuple([None] * 20000) >>> tup2.__sizeof__() 160024 C拡張を書いて頑張るしかないんじゃないの? >>> 4 * 20000 80000 素のPython3では無理。 が、>>403への答え。
|
- くだすれPython(超初心者用) その26 [転載禁止]©2ch.net
410 :デフォルトの名無しさん[]:2015/07/10(金) 21:56:08.47 ID:ClCVGawJ - >>403
素のPython3では無理だ。 Cで、offsetをmemberに持つ一方向listの構造体作る戦法でいこう。 readlineで読み込む毎にoffset記録していく。 しかないよ。 Cでmemory切り詰めても数十kbのmemoryではぎりぎりだもの。 数十を具体的に言うとどれくらい?10?40?70?
|
- くだすれPython(超初心者用) その26 [転載禁止]©2ch.net
412 :デフォルトの名無しさん[]:2015/07/10(金) 22:15:23.79 ID:ClCVGawJ - >>411
def filerev(somefile, buffer=0x20000): これか、最後まで一度飛んでおいて、 buffer分、後戻りして読み込んでsplitして、 またbuffer分、後戻りして、、、 の繰り返しでいけるんだ。 勉強になりました。 2chすげーな!
|