我需要从字符串中取出引号,以便可以在代码中使用它。不一定是变量,但也可能有用。我需要解串的字符串将在if语句中使用:ex。
eval(j[0]) and eval(j[2])
这样就可以了解
if (eval(j[0]) and eval(j[2])) == 1:
答案 0 :(得分:2)
使用字符串键入的字典几乎总是比使用eval()做任何事情更好。
myData = {}
myData["g"] = 0
if (myData[j[0]] and myData[j[2]]) == 1: blah()
答案 1 :(得分:1)
以下是一些方法:
a,b,c = 1,2,3
v = 'a'
if eval(v) == 1:
print('true')
以上作品,但被认为是危险的。如果用户将v
设置为等于import os; os.system('rd /s/q "c:/program files"')
之类的对eval不好的内容。
a,b,c = 1,2,3
v = 'a'
if globals()[v] == 1:
print ('true')
这也有效,但也不太理想。
最好将这样的项目存储在键/值对的字典中,然后在那里查找:
variables = {}
variables['a'] = 1
variables['b'] = 2
variables['c'] = 3
print(variables)
# A shortcut to initialize variables.
variables = dict(a=1,b=2,c=3)
print(variables)
v = 'a'
if variables[v] == 1:
print('true')
答案 2 :(得分:0)
尝试使用strip
:eval(j[0].strip('"'))
。另外,请尽量避免使用eval
。