【问题标题】:How to convert a string into nested dictionaries in python (Generator expression)?如何在python(生成器表达式)中将字符串转换为嵌套字典?
【发布时间】:2021-03-24 02:08:55
【问题描述】:

这里是输入字符串:

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])}  

但问题是我怎样才能使用 Generator 表达式?

如果你是 2 个元素('paper 5,pen 6,...')我可以这样做

d = dict((k, int(v)) for k, v in (e.split(' ') for e in s.split(',')))

我想知道在这种情况下我们该怎么做!

谢谢

【问题讨论】:

    标签: python generator-expression


    【解决方案1】:
    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)
    

    【讨论】:

      猜你喜欢
      • 2020-05-15
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 2011-12-01
      • 1970-01-01
      • 2021-11-21
      • 2023-01-07
      相关资源
      最近更新 更多