eval()函数可以把list,tuple,dict和string相互转化

可以把list,tuple,dict和string相互转化。
1、字符串转换成列表

>>>a = "[[1,2], [3,4], [5,6], [7,8], [9,0]]"
>>>type(a)
>>> b = eval(a)
>>> print b
[[1, 2], [3, 4], [5, 6], [7, 8], [9, 0]]
>>> type(b)

2、字符串转换成字典

>>> a = "{1: 'a', 2: 'b'}"
>>> type(a)
>>> b = eval(a)
>>> print b
{1: 'a', 2: 'b'}
>>> type(b)

3、字符串转换成元组

>>> a = "([1,2], [3,4], [5,6], [7,8], (9,0))"
>>> type(a)
>>> b = eval(a)
>>> print b
([1, 2], [3, 4], [5, 6], [7, 8], (9, 0))
>>> type(b)

4、eval()函数传进去的参数必须是字符串或者是对象
语法
以下是 eval() 方法的语法:
eval(expression[, globals[, locals]])
参数

  • expression -- 表达式。
  • globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
  • locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。
    示例1:
>>>a=10
>>>print(eval("a+1"))
>>>执行结果: 11

示例2:

>>>a=10
>>>g={'a':4}
>>>print(eval("a+1",g))
>>>执行结果:5

示例3:

>>>a=10
>>>b=20
>>>c=30
>>>g={'a':6,'b':8}
>>>t={'b':100,'c':10}
>>>print(eval('a+b+c',g,t))
>>>执行结果:116  (a=6, b=100, c=10)

5、eval函数,eval去除引号后会检查到它是不是可计算的,如果可计算会将计算的结果打印出来,如果不可计算直接返回结果
示例1:不可计算>>>>>直接输出结果

>>>s='["a","b","c"]'
>>>print(eval(s))
>>>执行结果: ['a', 'b', 'c']

示例2:表达式可计算>>>>>计算之后输出结果

>>>s='abs(-10)'  #返回绝对值
>>>print(eval(s))
>>>输出结果:10 

5、eval()函数,功能是将string变成算术表达式来执行
示例1:

>>>eval("1+2")
>>>执行结果: 3

示例2:

>>> eval("print(\"hello, world\")")
>>>输出结果:hello, world
 
 

 
posted @ 2020-08-01 12:56  龙Sir  阅读(422)  评论(0)    收藏  举报