为了账号安全,请及时绑定邮箱和手机立即绑定

创建“压缩”字典

创建“压缩”字典

慕田峪9158850 2021-10-05 16:13:58
我有一个 python 字典,我想根据键压缩成不同的字典:{'field1_0': 'FieldName1', 'field2_0': 'DataType1',     'field1_1': 'FieldName 2', 'field2_1': 'DataType2'}在这篇文章中我的钥匙是自动表单字段名称和它们由后“提供的数字分组_ ”: field1_0,field2_0进行分组并且field1_1,field2_1由于尾号进行分组。我想将这些分组元素组合起来,并将它们压缩成一个键值对的字典,其中分组项目的每个值都在新的字典中。例如,以上面的字典为例。我想要一个看起来像这样的字典:{'FieldName1': 'DataType1', 'FieldName2': 'DataType2'}对于我正在做的事情的上下文:我有一些动态 Django 表单,允许用户在我的项目中创建自定义报告。为此,我有 1 个表单,允许他们输入所需字段数的数字。提交此表单时,动态表单会根据输入的元素数量创建 2 个字段(1 个用于字段名称,1 个用于数据类型,即'field1_{x}': 'field name'和'field2_{x}':'datatype')。我将提交这个创建我们正在讨论的 dict 的提交,并将其传递到一个不同的动态表单中,该表单根据字段名称和数据类型创建字段,然后中提琴您有可以根据 3rd 方声明创建的自定义表单。
查看完整描述

1 回答

?
蛊毒传说

TA贡献1895条经验 获得超3个赞

在字段连续编号且始终正确配对的假设下,您可以使用简单的dict理解:


d = {'field1_0': 'FieldName1', 'field2_0': 'DataType1', 

     'field1_1': 'FieldName 2', 'field2_1': 'DataType2'}


new_d = {d[f'field1_{x}']: d[f'field2_{x}'] for x in range(len(d)//2)}

结果:


{'FieldName1': 'DataType1', 'FieldName2': 'DataType2'}


查看完整回答
反对 回复 2021-10-05
  • 1 回答
  • 0 关注
  • 165 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信