字符串转字典 有点不理解,求大神指教
>>> s = 'a=1,b=2,c = 3'>>> dic = dict((l.split('=') for l in s.split(',')))
>>> dic
{'a': '1', 'b': '2', 'c ': ' 3'}
dic = dict((l.split('=') for l in s.split(',')))
这行代码不理解,帮忙解释一下 谢谢 (l.split('=') for l in s.split(',')) 是一个生成器表达式,生成器是一个特殊的迭代器
dict 可以接收一个返回包含两个元素(作为键值对)的序列的迭代器生成一个字典
s.split(',') 将字符串 'a=1,b=2,c = 3' 切割为 ('a=1', 'b=2', 'c = 3')
然后 for l in s.split(',')) 相当于 for l in ('a=1', 'b=2', 'c = 3'),每个元素再用 '=' 切割 l.split('=')
最后对 ('a=1', 'b=2', 'c = 3') 中的每个元素分别切割成 ('a', '1') ('b', '2') ('c ', ' 3')
然后 dict 用 ('a', '1') ('b', '2') ('c ', ' 3') 作为键值对生成了一个字典。
还有就是当函数调用的参数只有生成器表达式的时候,函数调用的括号可以跟生成器表达式的括号共用,
这样美观一点
即
dic = dict((l.split('=') for l in s.split(',')))
可以改成
dic = dict(l.split('=') for l in s.split(','))
页:
[1]