【问题标题】:Trying to convert list of OrderedDict to Dictionary Key value Python尝试将 OrderedDict 列表转换为字典键值 Python
【发布时间】:2020-12-28 05:22:44
【问题描述】:

我需要将ordereddict转换为字典键值。

 test = [OrderedDict([('key', 'value'),
              ('name', 'A'),
              ('value', '5')]),
 OrderedDict([('key', 'value'),
              ('name', 'B'),
              ('value', '10')]),
 OrderedDict([('key', 'value'),
              ('name', 'C'),
              ('value', '25')])]here


Desired Output:
{'A': '5', 'B': '10', 'C': '25'}

【问题讨论】:

  • 请格式化您的代码部分选择代码并点击 ctrl+k
  • 好的,那么您的问题是什么?
  • my_dict = {i['name']: i['value'] for i in test} ?
  • 你真的有一个有序字典的列表,每个都映射{'key' :'value', 'name': ..., 'value': ...}?这看起来好像数据应该已经以不同的方式读取了。

标签: python-3.x list ordereddict


【解决方案1】:

您的test 本质上是一个字典列表。每个字典都有一个键 'name',我们希望它成为输出中的键,以及一个键 'value',我们希望它成为输出中的值。因此,我们可以只使用字典推导来遍历 test 包含的字典,并将每个字典转换为单个键值对。

output = {od['name']: od['value'] for od in test}
# {'A': '5', 'B': '10', 'C': '25'}

如果您希望输出OrderedDict,那么您可以将生成器理解提供给构造函数:

output_od = OrderedDict((od['name'], od['value']) for od in test)
# OrderedDict([('A', '5'), ('B', '10'), ('C', '25')])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-17
    • 2020-09-04
    • 2022-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-09
    相关资源
    最近更新 更多