python字符与字典、列表相互转换

import ast
import json

# 字符串转字典
str_of_dict = "{'key1': 'key1value', 'key2': 'key2value'}"
dict1 = ast.literal_eval(str_of_dict)
print(type(dict1), dict1)

# 字符串转字典
str1 = '{"name": "oscar", "age": 18}'
dict1 = json.loads(str1)
print(dict1)
print(type(dict1))

# 字典转字符串
my_dict = {'key1': 'key1value', 'key2': 'key2value'}
str1 = str(my_dict)
print(type(str1), str1)

# 字典转字符串
d = {"a": 1, "b": 2}
ds = json.dumps(d)
print(type(ds), ds)

# eval函数的官方解释为:将字符串str当成有效的表达式来求值并返回计算结果。即通过eval可以把list,tuple,dict和string相互转化,例如:
a = "[[1,2], [3,4]]"
b = eval(a)
print(type(b))

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

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

# dict 与list 转换
d1 = {
    'en': '英语',
    'cn': '中文',
    'fr': '法语',
    'jp': '日语'
}
list_values = [i for i in d1.values()]  # list_values=list(d1.values())
list_keys = [i for i in d1.keys()]  # list_values=list(d1.keys())

print(list_values, list_keys)

d2 = dict(zip(list_keys, list_values))  #使用zip函数转
print(d2)


#字典转列表
dit = {'a1': 'name1',
       'a2': 'name2',
       'a3': 'name3'}
lst_key = []
lst_value = []
for key, value in dit.items():
    lst_key.append(key)
    lst_value.append(value)
print(lst_key)
print(lst_value)

运行结果:
<class 'dict'> {'key1': 'key1value', 'key2': 'key2value'}
{'name': 'oscar', 'age': 18}
<class 'dict'>
<class 'str'> {'key1': 'key1value', 'key2': 'key2value'}
<class 'str'> {"a": 1, "b": 2}
<class 'list'>
<class 'dict'>
<class 'tuple'>
['英语', '中文', '法语', '日语'] ['en', 'cn', 'fr', 'jp']
{'en': '英语', 'cn': '中文', 'fr': '法语', 'jp': '日语'}
['a1', 'a2', 'a3']
['name1', 'name2', 'name3']
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值