Cherrypyを使用しているときに、このコメント行が表示されました。 "単一の項目リストを反復処理することは、長い文字列のすべての文字を反復処理するよりもはるかに高速であるため、文字列はリストにラップされます。 これは にありますhttps://github.com/cherrypy/cherrypy/blob/master/cherrypy/lib/encoding.py#L223 私はいくつかの研究をオンラインで行っていますが、私はまだresponse.bodyを[response.body]として包む理由を十分に理解していません。 ?誰も私にこのデザインの詳細を教えてもらえますか?長い文字列を繰り返し処理するよりも速く単一の項目リストを反復処理しますか? #Python #Cherrypy
答えて
コードがそのコメントの前にあると認識した場合、self.body
は単一の文字列または多数の文字列を含む繰り返し可能なシーケンスのいずれかになります。他のコードでは、それを後者として使用します(反復処理し、項目を文字列で処理する)。
技術的には、後のコードループを単一の文字列の文字に渡すことはできますが、文字ごとにデータを処理することは効率が悪い可能性があります。したがって、コメントの下のコードは、一度にすべて処理されるように、単一の文字列の周りにリストをラップします。
コードでは、本体は 'basestring'(cherrypy 3)または 'text_or_bytes'(cherrypy 5)でなければなりません。したがって、 'a'、 'b'、 'c']または['abc']を 'a'と比較するのではなく、 'a'と 'a'を比較するだけです。 – JoeyZhao
'self.body self.body:の 'chunk 'のためにファイル' all do 'に'。つまり、本体をループし、文字列である 'チャンク 'を得ることを期待しています(通常、行はループの最初の行にあるテキストであることをテストします)。それぞれのチャンクで実行する操作は、1つのチャンクが多い場合よりも1つの大きなチャンクがあれば効率的です。パフォーマンスの差はそれほど大きくないかもしれないので、このコードの実装の詳細について学ぶために多大な労力をかけていることはわかりません。 – Blckknght
ありがとうございました。これはたぶん唯一の説明だと思います。 – JoeyZhao
- 1. 文字列内の単語を繰り返し処理する
- 2. アセンブリー(NASM)の文字列を繰り返し処理する
- 3. JSONを繰り返し処理[Pythonの]
- 4. 仮想マシン上でのPythonのマルチプロセッシング/スレッド処理が単一の処理よりも長くかかる
- 5. 反復処理リスト
- 6. XSLT文字列パラメータの繰り返しと各パラメータの処理
- 7. 繰り返し処理
- 8. JS:divを繰り返し処理する
- 9. Pythonのリストでペアを反復処理し、反復
- 10. C#反復的にネストされたプロパティリストを繰り返し処理する
- 11. json配列でURL文字列を繰り返し処理する方法
- 12. XMLを反復処理しますか?
- 13. データテーブルを繰り返し処理し、リストの列を削除します
- 14. 複数のリストを一度に繰り返し処理する方が良い
- 15. 各繰り返し(TensorFlow)後に処理時間が長くなります。
- 16. 反復処理リストを作成する
- 17. 最短の長さのすべての文字列を繰り返し処理するアルゴリズムですか?
- 18. PHPの配列関数は、メモリアドレスを使って配列の項目を繰り返し処理します。
- 19. 処理(反復処理)
- 20. 反復処理 - パンダ/ Pythonの
- 21. リストを反復処理してfuncitonの結果を次の繰り返しに渡すには
- 22. 各配列項目を反復処理してデータベースに挿入する方法
- 23. JavaScriptでの繰り返し処理
- 24. go、問題の繰り返し処理
- 25. mysqlクエリ処理の繰り返し
- 26. jqliteの配列を繰り返し処理する
- 27. Javaでオブジェクトの配列を繰り返し処理する
- 28. 反復は繰り返しよりも悪いですか?
- 29. 反復処理
- 30. JSONArrayの繰り返し処理中に文字列を含むファイルを作成
デコードの意味ですか?私はまだプロセス(['sameblarblar'])がプロセス( 'sameblarblar')よりも速いのかどうかわかりません。その答えは、コメントが正しいと仮定すると、「プロセス」が入力を処理する方法にある必要があります。しかし具体的には、それは何ですか? – JoeyZhao
この質問をする別の方法は、文字列をリストに入れることによって、文字列Aを通過する労力を避けることができる場合です。 – JoeyZhao
あなたが与えた同じ例を使用するには、 'lotsofstuff'の中のものを実行する必要がある場合:この事をしてください、 '[' lotsofstuff ']のもののためにあなたはどのように役立ちますか? 'もの'のケア#noエスケープ、唯一の余分なステップ '?? – JoeyZhao