【问题标题】:How to change dictionary keys in a list of dictionaries? [duplicate]如何更改字典列表中的字典键? [复制]
【发布时间】:2019-02-11 19:36:30
【问题描述】:

给定以下字典列表:

[
     {'Label': 'Acura', 'Value': '1'}, 
     {'Label': 'Agrale', 'Value': '2'}
]

如何将“标签”一词替换为“制造”,将“价值”一词替换为“代码”?

我是 python 新手,尝试了许多不同的方法,但都没有成功。

【问题讨论】:

  • 嗨雨果,请您至少添加一种“不同方法”的代码。它会让你的问题更清楚,也请你期望输出什么。

标签: python


【解决方案1】:

使用.pop:

lst = [{'Label': 'Acura', 'Value': '1'}, {'Label': 'Agrale', 'Value': '2'}]

for d in lst:
    d['Make'] = d.pop('Label')
    d['Code'] = d.pop('Value')

print(lst)

这会产生

[{'Make': 'Acura', 'Code': '1'}, {'Make': 'Agrale', 'Code': '2'}]

如果密钥碰巧不存在。你也可以定义一个默认键:

d['new_key'] = d.pop('missing_key', 'default_value')

【讨论】:

    【解决方案2】:

    最简单的方法是用旧值添加一个新键,然后删除旧键:

    mydict['Make'] = mydict['Label']
    del mydict['Label']
    

    【讨论】:

      【解决方案3】:

      使用熊猫

      import pandas as pd
      df=pd.DataFrame([{'Label': 'Acura', 'Value': '1'}, {'Label': 'Agrale', 'Value': '2'}])
      df=df.rename(index=str, columns={"Label": "Make", "Value": "Code"})
      df.to_dict('records')
      

      【讨论】:

      • 熊猫真的需要这个吗?
      • 不,但它更容易并且对于更多列数应该是有效的。像pop() 这样的操作成本很高
      • 对不起,我没有提到pop?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-01
      • 2018-05-17
      • 2020-12-27
      • 2012-12-21
      相关资源
      最近更新 更多