如何将字符串转换为 python 中的嵌套字典(生成器表达式)?
How to convert a string into nested dictionaries in python (Generator expression)?
这里是输入字符串:
s = 'Iva paper 10,Nelson pens 5,Oleg marker 3,Sasha paper 7,Mark envelope 20'
我想要这样的输出:
{'Iva': {'paper': 10},
'Mark': {'envelope': 20},
'Nelson': {'pens': 5},
'Oleg': {'marker': 3},
'Sasha': {'paper': 7}}
可以做到这一点的代码是:
for k in s.split(','):
v = k.split(' ')
d[v[0]] = {v[1]: int(v[2])}
但问题是如何使用 生成器表达式?
如果你有 2 个元素('paper 5,pen 6,...'
)我可以做到这一点
d = dict((k, int(v)) for k, v in (e.split(' ') for e in s.split(',')))
我想知道在这种情况下我们该怎么做!
谢谢
s = 'Iva paper 10,Nelson pens 5,Oleg marker 3,Sasha paper 7,Mark envelope 20'
g = dict((j, dict([(k, l)])) for i in s.split(',') for j, k, l in (i.split(' '),))
#{'Iva': {'paper': '10'}, 'Nelson': {'pens': '5'}, 'Oleg': {'marker': '3'}, 'Sasha': {'paper': '7'}, 'Mark': {'envelope': '20'}}
print(g)
这里是输入字符串:
s = 'Iva paper 10,Nelson pens 5,Oleg marker 3,Sasha paper 7,Mark envelope 20'
我想要这样的输出:
{'Iva': {'paper': 10},
'Mark': {'envelope': 20},
'Nelson': {'pens': 5},
'Oleg': {'marker': 3},
'Sasha': {'paper': 7}}
可以做到这一点的代码是:
for k in s.split(','):
v = k.split(' ')
d[v[0]] = {v[1]: int(v[2])}
但问题是如何使用 生成器表达式?
如果你有 2 个元素('paper 5,pen 6,...'
)我可以做到这一点
d = dict((k, int(v)) for k, v in (e.split(' ') for e in s.split(',')))
我想知道在这种情况下我们该怎么做!
谢谢
s = 'Iva paper 10,Nelson pens 5,Oleg marker 3,Sasha paper 7,Mark envelope 20'
g = dict((j, dict([(k, l)])) for i in s.split(',') for j, k, l in (i.split(' '),))
#{'Iva': {'paper': '10'}, 'Nelson': {'pens': '5'}, 'Oleg': {'marker': '3'}, 'Sasha': {'paper': '7'}, 'Mark': {'envelope': '20'}}
print(g)