为了账号安全,请及时绑定邮箱和手机立即绑定

python list转dict

python list转dict

哈士奇WWW 2019-02-21 00:32:08
原始数据为 abc=00001&abc2=00002&abc3=00003 现在要把上面的数据转成dict格式:{'abc': 00001, 'ab2': 00002, 'ab3': 00003} 我现在用的方法是先转成list再转成dict: t = 'abc=00001&abc2=00002&abc3=00003' d = {} for i in t.split('&'): l = i.split('=') d[l[0]] = l[1] 我总觉得这个方法不简明,请问还有什么更好的方法吗?
查看完整描述

2 回答

?
开心每一天1111

TA贡献1836条经验 获得超13个赞

python3

>>> t = 'abc=00001&abc2=00002&abc3=00003'
>>> {k:v for k,v in (s.split('=')for s in t.split('&'))}
{'abc3': '00003', 'abc': '00001', 'abc2': '00002'}
查看完整回答
反对 回复 2019-03-04
?
翻翻过去那场雪

TA贡献2065条经验 获得超14个赞

将string按 '&' 号分开可以得到形式为"abc(n)=0000(n)"的数组,接下来对数组成员进行map,map的函数目的是将成员按 '=' 区分开,这一步将会获得[[key,value],[key,value],[key,value]],然后外面套个dict就行了。
函数式编程可读性好一点,缺点是你不容易知道哪儿缺了个括号。

t = 'abc=00001&abc2=00002&abc3=00003'
d = dict(map(lambda s: s.split('='), t.split('&')))
查看完整回答
反对 回复 2019-03-04
  • 2 回答
  • 0 关注
  • 488 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信