値としてリストを持つとき:反復辞書私はこのコードを持っている
import numpy as np
from sympy import sympify
class myclass():
def __init__(self, expression ='', values = {}):
self.expression = expression
self.values = values
def execute(self):
expr = sympify(self.expression)
for v in self.values:
expr = expr.subs(str(v),self.values[v])
self.result = expr.evalf()
return self.result
入力と辞書を持ったときに式を実行します。このデータでは
:
values = {'c':1, 'd':2}
print(myclass('c + d',values).execute())
私が受けています:3正しいです。
さて、私はこのデータを持っている方法がある:
values = {'c':[1,2], 'd':[3,4]}
execute
を呼び出し、結果を得るために注意、私は私かどうかを確認するために、execute
のfuctionを変更したくないということ?リストを持ってループを追加してください。私は辞書を反復処理したい
、のようなもの:
for k, v in thevalues.items():
for i in v:
print(myclass('c + d',.......).execute())
Iでおそらく '[{'c':1、 'd':3}、{'c':2、 'd':4}]'のようなディクテーションのリストにしたいと思っていますか? vのzip(* values.values())) 'の' map(dict、(zip(values.keys()、v)は ')'あなたにリストを与え、クラス+実行関数。 –
@PaulRooney:ありがとうございました、アイデアは、これも動作します。 – George