utwórz funkcję lambda z łańcucha ** poprawnie **

Podano ciąg taki jak

"2*(i+j) <= 100"

Chcę wygenerować odpowiednią funkcję lambda,

fn = lambda i,j: 2*(i+j) <= 100

Mogę to zrobićeval, ale szukam mniej złej metody.

znalazłem

import ast
f = ast.Lambda('i,j', '2*(i+j) <= 100')

ale nie wiem, jak wykonać wynik!

W idealnej sytuacji chciałbym automatycznie wyciągnąć listę parametrów ('i', 'j') - właśnie teraz używam tylko re.findall ('w +'), ale chciałbym móc poprawnie użyj istniejących funkcji, takich jakcos zamiast śledzić je jako „słowa kluczowe”.

Patrzyłem naCzy istnieje biblioteka Pythona do obsługi skomplikowanych zestawów matematycznych (skonstruowana przy użyciu matematycznego zapisu budowniczego)? i próbując dowiedzieć się, jak najlepiej przeanalizować notację set-builder w lambdy, aby przekazać je rozwiązaniu ograniczającemu.

W zasadzie pragnę ast.literal_eval, który rozpoznałby również zmienne.

Najlepiej, biorąc pod uwagęi >= 20 Chciałbym wrócić((lambda x: x >= 20), ['i']) do którego mogłem następnie przesłać bezpośrednioconstraint.

questionAnswers(2)

yourAnswerToTheQuestion