python list转dict

原始数据为 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]

我总觉得这个方法不简明,请问还有什么更好的方法吗?

哈士奇WWW
浏览 489回答 2
2回答

开心每一天1111

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'}

翻翻过去那场雪

将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('&')))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python