python基础:eval函数妙用--将字符串str转换成列表、字典等
功能:将字符串str当成有效的表达式来求值并返回计算结果。
语法: eval(source[, globals[, locals]]) -> value
参数:
source:一个Python表达式或函数compile()返回的代码对象
globals:可选。必须是dictionary
locals:可选。任意map对象
实例展示:
import json #==========字符串转为字典,元祖,列表========= # #字符串转为字典 str = '{"content-type":1}' # #方式一: str2 = eval(str) print(type(str),str) print(type(str2),str2) #方式二: str3 = json.loads(str) print(type(str3),str3) #字符串转成列表 str4 = "[1,2,3,4,5,6]" #方式一: list = eval(str4) print(type(str4),str4) print(type(list),list) #方式二: list2 = json.loads(str4) print(type(list2),list2) #字符串转为元祖 a = "([1,2],[3,4],[5,6])" tuple = eval(a) print(type(a),a) print(type(tuple),tuple) #=================元祖、列表、字典相互转换============ # 1.字典 dict = {'name': 'Zara', 'age': 7, 'class': 'First'} # 字典转换为字符串,返回:<type 'str'> {'age':7,'name':'Zara','class':'First'} print(type(str(dict)), str(dict)) # 字典可以转为元祖,返回:('age','name','class') print(tuple(dict)) # 字典值可以转为元祖,返回(7,'Zara','First') print(tuple(dict.values())) # 字典转为列表,返回:['age','name','class'] print (list(dict)) # 字典值转为列表 print(dict.values) # 2.元祖 tup = (1, 2, 3, 4, 5) # 元祖转为字符串,返回:(1,2,3,4,5) print(tup.__str__()) # 元祖转为列表,返回:[1,2,3,4,5] print(list(tup)) # 元祖不可以转为字典 # 3.列表 nums = [1, 3, 5, 7, 8, 13, 20] # 列表转为字符串,返回:[1,3,5,7,8,13,20] print(str(nums)) # 列表转为元祖,返回:(1,3,5,7,8,13,20) print(tuple(nums)) # 列表不能转为字典