0

次の変数があります。

Output=[{'name': 'AnnualIncome', 'value': 5.0},
 {'name': 'DebtToIncome', 'value': 5.0},
 {'name': 'Grade', 'value': 'A'},
 {'name': 'Home_Ownership', 'value': 'Rent'},
 {'name': 'ID', 'value': 'ID'},
 {'name': 'InitialListing_Status', 'value': 'f'},
 {'name': 'JointFlag', 'value': 0.0},
 {'name': 'LateFeeReceived_Total', 'value': 5.0},
 {'name': 'LoanAmount', 'value': 5.0},
 {'name': 'OpenCreditLines', 'value': 5.0},
 {'name': 'Strategy', 'value': 'Reject'},
 {'name': 'Term', 'value': '60 months'},
 {'name': 'TotalCreditLines', 'value': 5000.0}]

これは、定義した関数のほとんどの出力です。

間違いなく、私の関数の出力は常に JointFlag と Strategy になることを知っています。Output の他の変数については、存在する場合と存在しない場合があります (新しい変数や別の順序で存在する場合もあります!)。

辞書は exec よりもはるかに優れた方法であると聞いたので、これにアプローチする方法を知りたいだけです。

定義した関数の最後には、次の文字列が含まれます。

return JointFlag, Strategy

これは私が現在使用しているexecコマンドです。

def execute():
    #Some random codes which leads to Output variable

    for Variable in range(len(Outputs)):
        exec(f"{list(Outputs[Variable].values())[0]} = r'{list(Outputs[Variable].values())[1]}'")
    return JointFlag, Strategy
4

2 に答える 2