eval函数的简介和语法
eval()函数用来执行一个字符串表达式,并返回表达式的值。还可以把字符串转化为list、tuple、dict。
eval函数的语法:
eval(expression[,globals[,locals]])
参数:
expression:表达式。
globals:变量作用域,如果被提供,必须是一个字典对象。
locals:变量作用域,如果被提供,可以说任何映射对象。
eval()函数使用实例
1 字符串转换成列表
a="[1,2,3,4,5]"
print(type(a),a)
b=eval(a)
print(type(b),b)
# a是字符串类型数据,b是列表类型数据
输出结果:
<class ‘str’> [1,2,3,4,5]
<class ‘list’> [1, 2, 3, 4, 5]
2字符串转换成字典
a="{'name':'guo','age':25}"
print(type(a), a)
b = eval(a)
print(type(b),b)
# a为字符串类型数据,b为字典类型数据
输出结果:
<class ‘str’> {‘name’:‘guo’,‘age’:25}
<class ‘dict’> {‘name’: ‘guo’, ‘age’: 25}
3字符串转换为元组
a = "(1,2,3,4,5)"
print(type(a), a)
b=eval(a)
print(type(b), b)
输出结果:
<class ‘str’> (1,2,3,4,5)
<class ‘tuple’> (1, 2, 3, 4, 5)
4eval()返回表达式的值
x = 4
print(eval("3*x")) #12x = 10
g = {'a': 4}
print(eval("a+1", g)) #5x = 10
b = 20
c = 30
g = {'a': 6, 'b': 8}
t = {'b': 100, 'c': 10}
print(eval('a+b+c', g, t)) #116
5eval输出字典
d={"id":1,"name":2}
print(d)
print(dict({'id':1,'name':2}))
# print(dict("{'id':1,'name':2}")) 错误,无法输出
print(dict(eval("{'id':1,'name':2}"))) #eval将字符串转换为字典
输出结果:
{‘id’: 1, ‘name’: 2}
{‘id’: 1, ‘name’: 2}
{‘id’: 1, ‘name’: 2}