Python Eval/Exec 函数未解析

Python Eval/Exec function not resolving

我正在尝试使用 eval 函数来执行循环。它给出了语法错误

list_subjects = (element.upper() for element in list(score_card_data['subject_id']))
for i,sub in enumerate(list_subjects) :
    print(("bins_{1:s}").format(i,sub))
    print("list(score_card_data.loc[score_card_data['subject_id'] == {1:s}, 'bin_list'])").format(i,sub)
    eval("("bins_{1:s}").format(i,sub) = "list(score_card_data.loc[score_card_data['subject_id'] == {1:s}, 'bin_list'])").format(i,sub)")    


  File "<ipython-input-192-529c79a094e4>", line 5
    eval("("bins_{1:s}").format(i,sub) = "list(score_card_data.loc[score_card_data['subject_id'] == {1:s}, 'bin_list'])").format(i,sub)")
                ^
SyntaxError: invalid syntax  

如何解析一个 eval 函数中的 2 个打印语句

您收到语法错误,因为您尝试在用于分隔代码中字符串文字的字符串中使用相同类型的引号。

您有这些选择:

  • 在字符串中使用单引号和双引号分隔:

    eval("' '.join('some', 'words')")
    
  • 字符串内部使用双引号,单引号分隔:

    eval('" ".join("some", "words")')
    
  • 使用字符串中的任何引号和任何引号(当然左右两边的类型相同)来分隔它,但使用反斜杠转义字符串中的所有引号:

    eval('\' \'.join(\'some\', \'words\')')
    eval("\" \".join(\"some\", \"words\")")
    
  • 在字符串中使用任意引号和"triple quotes"(三个单引号'''或三个双引号""",左右两边类型相同当然)来分隔它:

    eval("""" ".join("some", "words")""")
    eval("""' '.join('some', 'words')""")
    eval('''' '.join('some', 'words')''')
    eval('''" ".join("some", "words")''')