問題タブ [itertools]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 重複を排除し、リスト内の対応する用語を合計します
これらの2つのリストを考えると
入手したい
リストは常に順序付けられており、同じサイズと要素がキーと値のペア(A:3、B:2など)として対応しています。
目的は、L2の重複を排除し、L3の対応する項を合計して、一致するペアを持つ新しいリストを取得することです。これは、アイテムがリストに追加されるときに、アイテムの実行リストを保持するためです。
で関数を書こうとしましたindex
が、醜くなり始めました。確認itertools
しましたが、関連するものは見つかりませんでした。私は見ましstarmap()
たが、それを機能させることができませんでした。おそらく、これはリスト内包表記でも実行できます。この最も簡単な方法を実現する方法についての手がかりや指示をいただければ幸いです。ありがとうございました。
編集
@SimonC:
これはどのようにして重複を排除し、数字を追加しますか?手がかりを教えてもらえますか?ありがとう。
python - Pythonでの文字列カバレッジの最適化
この最初の文字列があります。
また、文字列を持つタプルがあります。
最初の文字列と文字列のタプルから次のようになる関数が必要です。
私は、すべての単語の最初の文字列で単語を見つけてから、すべての最初の文字列で単語を置き換えて文字ごとにループすることによって、それを実行する方法を知っています。
しかし、それはあまり効率的で醜いものではありません。itertoolsなどを使用して、機能的な方法でこれをよりエレガントに行う方法があるはずだと思います。これを効率的に実行できるPythonライブラリをご存知の場合は、お知らせください。
更新:Justin Peelは、最初の質問で説明しなかったケースを指摘しました。単語が「aaa」で、「aaaaaa」が最初の文字列に含まれている場合、出力は「xxxxxx」のようになります。
python - pythonitertoolsスキップします
リストのリストがあります。itertoolsを使用して、私は基本的にやっています
product([A、B]、[C、D]、[E、F、G])の結果の場合:#各結果をテストします
結果は目的の製品であり、各結果には各リストの1つの要素が含まれています。私のコードは、各結果を要素ごとにテストし、最初の(そして最良の)「良い」ものを探します。テストする数が非常に多い場合があります。
最初の結果「ACE」をテストしているとしましょう。2番目の要素「C」をテストしたときに「ACE」が悪い結果であることがわかったとします。「ACF」または「ACG」をテストする必要はありません。失敗したACEから直接ADEの試行にスキップしたいと思います。とにかく、床に不要な結果を投げることなくこれを行うには?
ネストされたforループを使用してこれを実装する場合、ループ内のforループインデックスを操作しようとしますが、それはあまり良いことではありません...しかし、多くの結果のテストをスキップしたいと思います。itertoolsで効率的にスキップできますか?
python - Pythonでラベル付きのデカルト積を列挙する最良の方法は?
変数を可能な結果にマッピングする辞書が与えられた場合:
{ 'lblA' : [False, True], 'lblB' : [False, True], 'lblC' : [0,1,2] }
考えられるすべての辞書の結果を列挙したいと思います。
これは再帰的に実行できることは知っていますが、スピードを上げるために本当に実行したいと思いますitertools
。
誰かがこれを行うための最良の方法を知っていますか?
あなたの助けをどうもありがとう!
編集
任意の辞書に対してこれを実行したいと思います。
python - Pythonで並べ替えられたワードリストのサブセットを生成する
私は単語のリストを持っています、そして私はこれらのすべての可能な順列を生成する必要がありますが、1つの警告があります。
私は現在、次のコードを使用しています。
これは出力を与えます:
ただし、次のようなこれらの単語のサブセットを印刷するためにも必要です。
しかし、私はこれをどのように行うかについて少しも考えていません。どこから始めればいいですか?私は何を読むべきですか?
python - itertools 製品の高速化
itertools.product を使用して、長さ 13 の 4 つの要素のすべての可能なバリエーションを生成します。4 と 13 は任意ですが、そのままでは 4^13 の結果が得られます。これは大量です。Numpy 配列としての結果が必要で、現在次のことを行っています。
いくつかの単純なプロファイリング コードが間に押し込まれているため、最初の行はほぼ瞬時に表示されるように見えますが、リストへの変換と Numpy 配列への変換には約 3 時間かかります。これを速くする方法はありますか?私が見落としているのは、おそらく本当に明白なことです。
ありがとう!
python - 多変量多項式指数の最適化ジェネレーター
やあ、次数の多変量多項式の指数を取得するための一般的な式を見つけようとしてorder
います。n_variables
itertools.product
ジェネレーターを使用する現在のコードを次に示します。
望ましいアウトはこれです:
実際には、ジェネレーター オブジェクトが作成されるだけなので、このコードは高速に実行されます。このジェネレーターからの値でリストを埋めたい場合、主に への呼び出し回数が多いため、実行が実際に遅くなり始めますsum
。との典型的な値はorder
、n_variables
それぞれ 5 と 10 です。
どうすれば実行速度を大幅に改善できますか?
助けてくれてありがとう。
ダヴィデ・ラザニア
python-2.7 - izipの代わりにzipを使用する方がよいのはいつですか。
zip
代わりに使用する方が良いのはitertools.izip
いつですか?
python - itertools.chain オブジェクトを元に戻すにはどうすればよいですか?
私の関数はジェネレーターのチェーンを作成します:
chained
私の関数は時々逆の順序で戻る必要があります。概念的には、次のことができるようになりたいと考えています。
不運にも:
私のオプションは何ですか?
これはいくつかのリアルタイム グラフィック レンダリング コードに含まれているため、複雑すぎたり遅くしたりしたくありません。
編集:私が最初にこの質問をしたとき、私はジェネレーターの可逆性について考えていませんでした。多くの人が指摘しているように、ジェネレーターを元に戻すことはできません。
実際、チェーンの平坦化された内容を逆にしたいのです。ジェネレーターの順序だけではありません。
応答に基づいて、itertools.chain を逆にするために使用できる単一の呼び出しはありません。したがって、ここでの唯一の解決策は、少なくとも逆の場合、おそらく両方の場合にリストを使用することだと思います。
python - Python: itertools.islice がループで機能しない
次のようなコードがあります。
line_str は最初のパスでは正しいですが、その後のすべてのパスは別の行を読み取る必要があります。
たとえば、goto_line は 1000 から始まります。1000 行目までは問題なく読み取れます。次に、次のループ goto_line は 500 ですが、500 行目は読み取れません。1000 に近い行が読み取られます。
必要以上に読み取らずに、大きなファイルの特定の行を読み取ろうとしています。ある行に後方にジャンプすることもあれば、前方にジャンプすることもあります。
私は linecache を試しましたが、通常、このコードを同じファイルに対して複数回実行することはありません。