私はよく、配列インデックスが複雑なユーザー指定のセットから生成される多次元配列を扱います。
任意の数のインデックスと任意の複雑な述語を持つ複雑なセットを表すためのクラスを含むライブラリを探しています。セットの説明が与えられた場合、目的の出力はジェネレーターになります。このジェネレータは、多次元配列インデックスに対応するdict
s またはs を生成します。tuple
そのようなライブラリは存在しますか?
例
次のユーザー指定のセット ( set-builder 表記法) があるとします。これは、配列変数のインデックスを表しますx[i][j]
。
{i in 1..100, j in 1..50: i >= 20, j >= 21, 2*(i + j) <= 100}
これをある種の遅延クラス (おそらくジェネレーター式) に入れたいと思います。これにより、セットの要素を遅延評価して配列のインデックスを生成できるようになります。このクラスが呼び出されたとしlazyset
ます。これは望ましい動作です。
>>> S = lazyset("{i in 1..100, j in 1..50: i >= 20, j >= 21, 2*(i+j) <= 100}")
>>> S
<generator object <genexpr> at 0x1f3e7d0>
>>> next(S)
{'i': 20, 'j': 21}
>>> next(S)
{'i': 20, 'j': 22}
ジェネレーター式を使用して独自のロールを作成できると考えていますが、これはほとんど解決された問題のようです。それで、これを処理する確立されたライブラリに誰かが遭遇したかどうかを尋ねたと思いました(少なくともある程度は)。そのようなライブラリは存在しますか?