Pythonでは、反復処理時にrange
の代わりにxrange()
を使用する方がメモリー効率が向上します。任意の要素をxrange()に追加しますか?
私が抱えている問題は、大きいリストを繰り返し処理したいということです。xrange()
を使用する必要があり、その後、任意の要素をチェックしたいと思います。
range()
とすれば、簡単です:x = range(...) + [arbitrary element]
。
しかしxrange()
で、これよりもクリーンソリューションがあるように思えません:クリーナーソリューションの
for i in xrange(...):
if foo(i):
...
if foo(arbitrary element):
...
任意の提案ですか?任意の要素をジェネレータに「追加」する方法はありますか?
あなたはどのような繰り返しをしているのかを明確にすることはできますか? 'xrange(len(my_list)) 'を使用してリスト自体を繰り返し処理する場合は、' xrange'を使用しないでください。 'for i、elem in enumerate(my_list)'を使ってこれを行うことができます。 iの値。 –
@ Two-BitAlchemist私は確か 'len(my_list) 'を反復していません。私はあなたがそれをなぜ仮定するのか分かりません。一般性を失うことなく、 'range()'の代わりに 'xrange()'を使用するのに十分な範囲で繰り返し実行しているとしましょう。 'xrange(99999999)' – Newb
"私はあなたがそれを仮定する理由を知らない。" 'range(len(x))'はPythonの非常に一般的な反復パターンで、StackOverflowの質問には何百回も出現します。ちょうど明確にしたいと思った。 –