問題タブ [functools]

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.

0 投票する
5 に答える
15753 参照

python - functools での lru キャッシュの使用法

コードで lru_cache を使用したいのですが、次のエラーが発生します。

コードに import functools がありますが、それは役に立ちません

コード例は次のとおりです。

0 投票する
1 に答える
2389 参照

python - functools.lru_cache がこの機能を壊すのはなぜですか?

一連の要素のすべての一意の順列を返す次の関数を検討してください。

これは印刷します

予想通り。ただし、関数をメモ化するlru_cacheデコレータを追加すると、次のようになります。

次のように出力します。

最初の順列のみを出力するのはなぜですか?

0 投票する
2 に答える
76 参照

python - 同じコマンドの同じボタンを複数の場所に配置するが、独自の機能を持つ

私の質問を一文で表現する方法が完全にはわかりません。Python を使用して、アスリートの走行距離を記録できるカレンダーを作成しています。左上隅に月の番号を含む 7x4 グリッドを含み、中央に「今日のワークアウトを記録する」というボタンを含むカレンダーを作成しました。

このボタンは新しいウィンドウを開き、ユーザーが走行距離と速さを入力できるようにし、ユーザーが新しいウィンドウの下部にある「ログ」を押すと、その日の走行距離とペースを表示する必要があります。ボタンが押されました。

私の問題は、クリックされた特定の日だけを情報に置き換える方法がわからないことです。毎月同じボタンを作成したくなかったので、毎日同じボタンを (同じコマンドと共に) 使用しています。グリッド内のどこにあるかを知るボタンが必要で、走行距離とペースで配置する場所をラベルに伝えることができます。

ラムダが役立つかどうかを調査しようとしましたが、役に立ちませんでした。ここに私のコードの関連する部分があります(まだPythonにはかなり新しく、おそらく少しずさんです、申し訳ありません)。

多くのコードを省略しました。表示されるのは、毎日にボタンを付けるコードと、カレンダーにペースを配置するコードです。行と列に配置するためにいくつかのことを試しました。ほとんどの場合、エラー メッセージが表示されるか、すべてのボックスに同じラベルが付けられます。ボタンを変更する方法、またはクリックされたボタンのみを置き換えるために行と列に何を入れるかを知る必要があります。他に何か必要な場合は、これを非常に頻繁に確認し、頻繁に更新します。

0 投票する
3 に答える
2922 参照

python - Python functools.partial - 静的デコレータを使用してクラス メソッドに適用する方法

これを行う方法があるに違いないことはわかっています。しかし、「TypeError: 最初の引数は呼び出し可能でなければなりません」というエラーが表示されます。

これを機能させるには、どうすればよいでしょうか?

0 投票する
1 に答える
365 参照

python - メソッドをオブジェクト ランタイム レイト バインディングにバインドする

Python のループの遅延バインディングについては認識していますが、これを解決する方法が見つかりません。

私はで試してみましたが、成功partialfunctoolsませんでした:(

0 投票する
1 に答える
3323 参照

python - Python2 の組み込みの reduce と functools.reduce はどう違うのですか?

どちらにもまったく同じドキュメントがあり、どちらもhttps://hg.python.org/cpython/file/Modules/_functoolsmodule.cの同じソースコードに由来するようです。

しかし、私はそれについて確信が持てません。CPython のソース コードに他の参照は見つかりませんでした。誰かがここでこれにもう少し光を当てることができますか?

0 投票する
1 に答える
56 参照

python - Python 汎用関数のディスパッチ

引数が次のような関数をディスパッチする方法はありますか:

  • 単一のラムダ関数 (すなわちfunc(lambda x: x))
  • kwargs (つまりfunc(a='some sting', b='some other string'))

私が見たように、singledispatchデコレーターfunctoolsは最初の引数でのディスパッチのみをサポートしていますが、私の場合は機能しません。何か不足していますか?

0 投票する
1 に答える
306 参照

python - groupby 変換から関数を適用する

私のパンダはこんな感じ

関数が埋め込まれた関数の1つで、グループバイを正常に実行するプログラムがあります。

この行は次のようになります

ここで私の最初の質問とデータ形式を参照してください。

異なる val からの計算結果に対して同じ df の df col 行で 1 つの値のみを選択し、一度に 1 つのティッカーでのみ df を計算します

私が5つ持っている各埋め込み関数でgroupbyを実行するのではなく、top関数を呼び出すメインプログラムでgroupbyを実行して、すべての埋め込み関数がフィルタリングされたgroupby pandasで動​​作できるようにすることに気づきました。 groupbyを1回だけ実行することによるデータフレーム...

パンダをフィルタリングするために、メイン関数を groupby で適用するにはどうすればよいですか?

「Ticker」列には、「aapl」、「msft」、「nflx」などの企業 ID と、時間枠の時系列データが含まれています。


ありがとう、カラシンスキー。これは私が望むものに近いです。しかし、エラーが発生します。

私が実行すると:

次のエラーが表示されます。

そして、私がfunctoolsをそのように使うとき

上記と同じエラーが発生します...


31/5 の Karasinski の編集からの編集。

Karasinski からの最後の提案を実行すると、このエラーが発生します。

0 投票する
2 に答える
5616 参照

python - 定数だがハッシュ不可能なオブジェクトを持つ関数で functools.lru_cache を使用する

functools.lru_cacheによって作成された部分関数のキャッシュに使用できfunctools.partialますか?

私の問題は、ハッシュ可能なパラメーターと、NumPy 配列などの定数のハッシュ不可能なオブジェクトを取る関数です。

次のおもちゃの例を考えてみましょう。

NumPy 配列はハッシュ可能でないため、これは機能しません。

予想どおり、次のエラーが表示されます。

だから私の次のアイデアはfunctools.partial、NumPy配列を取り除くために使用することでした(とにかく定数です)

これで、ハッシュ可能な引数のみを受け取る関数ができましたlru_cache。しかしlru_cache、この状況で使用することは可能ですか?@lru_cacheデコレータの代わりにラッピング関数として使用することはできませんか?

これを解決する賢い方法はありますか?