【问题标题】:Python: Parse list of 'key:value' elements to dictionary of 'key': value pairsPython:将“键:值”元素列表解析为“键”字典:值对
【发布时间】:2023-03-15 22:16:01
【问题描述】:

我有以下清单:

['a:1', 'b:2', 'c:3', 'd:4']

我想转换为有序字典(使用collections):

{'a': 1, 'b': 2, 'c': 3, 'd': 4}

我已经看到使用正则表达式 here 的解决方案,但我对正则表达式的熟悉程度不足以推出解决方案。对此有什么想法吗?

【问题讨论】:

  • 熟悉正则表达式怎么样?
  • 正则表达式和这个有什么关系?
  • 一直在努力... :)
  • 查看我的问题中的链接,stackoverflow.com/questions/10380992/…。有人使用正则表达式解决了类似的问题。

标签: python list dictionary


【解决方案1】:
d = collections.OrderedDict(el.split(':') for el in your_list)

或者,将值转换为整数:

OrderedDict( (k, int(v)) for k, v in (el.split(':') for el in your_list))

【讨论】:

  • 这不太对……看来 OP 希望将整数作为值,但这会给出字符串……
【解决方案2】:

要以整数形式获取值,请尝试以下操作:

In [67]: lis=['a:1', 'b:2', 'c:3', 'd:4']

In [68]: def func(x):
    spl=x.split(':')
    return spl[0],int(spl[1])
   ....: 

In [71]: dict(map(func,lis))
Out[71]: {'a': 1, 'b': 2, 'c': 3, 'd': 4}

【讨论】:

    猜你喜欢
    • 2020-03-31
    • 1970-01-01
    • 2017-04-25
    • 2017-11-07
    • 2011-09-05
    • 2017-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多