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))
# 列表不能转为字典

 

posted @ 2019-05-05 17:19  八戒不爱吃西瓜  阅读(372)  评论(0编辑  收藏  举报