我需要调用一个函数,其名称在python中的字符串中可用 例如:
[(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
我需要执行上面的语句但是变量count可能会根据用户输入增加任何想法吗?
另一个例子:
a = "for y in range(2,20):print y"
我需要将上面的字符串作为python命令执行
实际问题是循环没有,变量可能会增加取决于输入 somtimes我wnat迭代3项目所以3循环有时4项目然后4循环 所以我想通过这种方式,如果我生成带变量的字符串,如果我可以执行它问题可以解决
答案 0 :(得分:3)
您正在寻找内置的eval
功能:
s = "[(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]"
result = eval(s)
如果需要变量,可以使用locals
参数:
>>> eval("s.upper()",{'s':'hello'})
'HELLO'
如果要执行语句而不是评估表达式,请使用exec
:
>>> a = "for y in range(2,20):print y"
>>> exec a
2
3
...
19