记录一下今天读代码时新学的函数eval()
1.功能
eval()函数用于执行字符串表达式,并返回表达式的值。表达式的定义是由常量、变量、函数、运算符及圆括号组成的有意义的式子。
2.完整语法格式
eval(expression,globals=None, locals=None)
expression:字符串表达式
globals:不为None时必须是字典对象
locals:不为None时可以是任何映射对象
3.使用实例
实例①:
In[1]: eval(‘1+2’)
Out[1]: 3实例②:
In[2]: x=2
In[3]: eval(‘pow(2,x)’)
Out[2]: 4实例③
In[4]: eval(‘[x for x in range(9)]’)
Out[4]: [0, 1, 2, 3, 4, 5, 6, 7, 8]
扩展说明
eval()可以实现list、dict、tuple与str之间的转化,在工作中会经常使用到该功能。
- 实例①:将字符串转化成列表
a = "[[1,2], [3,4], [5,6]]"
type(a)
#Out[1]: <type 'str'>
b = eval(a)
print b
#Out[2]:[[1, 2], [3, 4], [5, 6]]
type(b)
#Out[3]:<type 'list'>
- 实例②:将字符串转化成字典
a = "{1: 'a', 2: 'b'}"
type(a)
#Out[1]:<type 'str'>
b = eval(a)
print b
#Out[2]:{1: 'a', 2: 'b'}
type(b)
#Out[3]:<type 'dict'>
- 实例③:将字符串转化成元组
a = "([1,2], [3,4], [5,6])"
type(a)
#Out[1]:<type 'str'>
b=eval(b)
print(b)
#Out[2]:([1,2], [3,4], [5,6])
type[b]
#Out[3]:<type 'tuple'>
通过观察得知eval()函数的结果就是将括号里面的内容去掉了引号,这样就好easy了~