用另一个 dicts dict 检查 dicts 的复杂 dict 中的值并将其保存为第三个字典

瓦姆西尼玛拉

字典的输入字典是dict1和dict2。

dict1 = {company1:[{'age':27,'weight':200,'name':'john'},{'age':23,'weight':180,'name':'peter'}],
         company2:[{'age':30,'weight':190,'name':'sam'},{'age':32,'weight':210,'name':'clove'},{'age':21,'weight':170,'name':'steve'}],
         company3:[{'age':36,'weight':175,'name':'shaun'},{'age':40,'weight':205,'name':'dany'},{'age':25,'weight':160,'name':'mark'}]
         company4:[{'age':36,'weight':155,'name':'lina'},{'age':40,'weight':215,'name':'sammy'},{'age':25,'weight':190,'name':'matt'}]
        }

dict2 = {company2:[{'age':30},{'age':45},{'age':52}],
         company4:[{'age':43},{'age':67},{'age':22},{'age':34},{'age':42}]
        }

我正在尝试编写一个逻辑,我可以检查 dict2 中每个公司密钥的内部密钥('age')是否存在于同一公司密钥 dict1 中,即使内部密钥 'age' 的一个值与内部密钥('age')匹配在同一公司密钥的 dict1 中,然后将其保存到第三个字典中。请检查以下示例

示例

company2:[{'age':30}]

company2:[{'age':30,'weight':190,'name':'sam'}, ...]

另外,我想将 dict1 中没有出现在 dict2 中的 key:values 保存到 dict3,正如我们在下面的示例中看到的那样,company1 键没有出现在 dict2 中。

示例

company1:[{'age':27,'weight':200,'name':'john'},{'age':23,'weight':180,'name':'peter'}]

company3:[{'age':36,'weight':175,'name':'shaun'},{'age':40,'weight':205,'name':'dany'},{'age':25,'weight':160,'name':'mark'}]

预期输出:

dict3 = {company1:[{'age':27,'weight':200,'name':'john'},{'age':23,'weight':180,'name':'peter'}],
         company2:[{'age':30,'weight':190,'name':'sam'},{'age':32,'weight':210,'name':'clove'},{'age':21,'weight':170,'name':'steve'}]
         company3:[{'age':36,'weight':175,'name':'shaun'},{'age':40,'weight':205,'name':'dany'},{'age':25,'weight':160,'name':'mark'}]}

原谅我的解释!

克里斯·查理

使用其他更简洁的方法可能会更好地完成此解决方案。但是,它实现了预期的结果。

from pprint import pprint

dict3 = dict()

dict1 = {'company1':[{'age':27,'weight':200,'name':'john'},{'age':23,'weight':180,'name':'peter'}],
         'company2':[{'age':30,'weight':190,'name':'sam'},{'age':32,'weight':210,'name':'clove'},{'age':21,'weight':170,'name':'steve'}],
         'company3':[{'age':36,'weight':175,'name':'shaun'},{'age':40,'weight':205,'name':'dany'},{'age':25,'weight':160,'name':'mark'}],
         'company4':[{'age':36,'weight':155,'name':'lina'},{'age':40,'weight':215,'name':'sammy'},{'age':25,'weight':190,'name':'matt'}]
        }

dict2 = {'company2':[{'age':30},{'age':45},{'age':52}],
         'company4':[{'age':43},{'age':67},{'age':22},{'age':34},{'age':42}]
        }

for company, array in dict1.items():
    if company not in dict2:
        dict3[company] = array
    else:
        # all the ages for this company in dict1
        ages = set(map(lambda x: x['age'], array))

        for dictref in dict2[company]:
            if dictref['age'] in ages:
                dict3[company] = array
                break
pprint(dict3)

输出是

{'company1': [{'age': 27, 'name': 'john', 'weight': 200},
              {'age': 23, 'name': 'peter', 'weight': 180}],
 'company2': [{'age': 30, 'name': 'sam', 'weight': 190},
              {'age': 32, 'name': 'clove', 'weight': 210},
              {'age': 21, 'name': 'steve', 'weight': 170}],
 'company3': [{'age': 36, 'name': 'shaun', 'weight': 175},
              {'age': 40, 'name': 'dany', 'weight': 205},
              {'age': 25, 'name': 'mark', 'weight': 160}]}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python通过变量中的键获取/设置dicts的dict值

来自分类Dev

将dicts列表转换为dicts python3的dict

来自分类Dev

如何通过dict值y从dicts列表中获取dict值x

来自分类Dev

如何将defaultdicts的defaultdict转换为dicts的dict?

来自分类Dev

如何使用嵌套的dicts展平一个dicts列表

来自分类Dev

如何从python中的dicts列表创建dicts?

来自分类Dev

当dict值是另一个列表时,该dict的过滤列表

来自分类Dev

如何进行dict计算并插入python中的另一个优化dict

来自分类Dev

当值是另一个dict时从dict获取密钥

来自分类Dev

当值是另一个dict时从dict获取密钥

来自分类Dev

将一个dict作为值添加到另一个dict将覆盖先前的值

来自分类Dev

Scrapy。在解析结果中创建复杂结构(dict中的dict)

来自分类Dev

用dict遍历一个元组

来自分类Dev

如何使用dict()从一个文件到另一个python文件

来自分类Dev

如何在dict创建过程中从另一个值构建Python dict值?

来自分类Dev

比较python 2中的两个dicts列表

来自分类Dev

通过Python中的dict值来自另一个文件的变量

来自分类Dev

在 python dict 中添加键的新值。来自另一个文件的 jsom

来自分类Dev

python dicts of dicts out of python dicts

来自分类Dev

python dicts的统一,同时保持值的元组

来自分类Dev

检查dict键是否在dict的列表(元组)中

来自分类Dev

使用从另一个python文件中的文件导入的python dict

来自分类Dev

在python中弱引用另一个dict的项

来自分类Dev

当每个值是一个dict时,将数据框保存为excel

来自分类Dev

发出初始化类型字典的一个变量和类型dict的另一个变量的问题

来自分类Dev

如何在python 2.7中基于另一个数组对一个multiarray dict排序

来自分类Dev

在 Ansible 中检查 Dict 中键的值

来自分类Dev

如何将嵌套的 Dict 列表与另一个嵌套的 Dict 列表进行比较,并从另一个更新一个中的值

来自分类Dev

如何从另一个字典中减去一个字典的值并将结果写入第三个字典?

Related 相关文章

  1. 1

    Python通过变量中的键获取/设置dicts的dict值

  2. 2

    将dicts列表转换为dicts python3的dict

  3. 3

    如何通过dict值y从dicts列表中获取dict值x

  4. 4

    如何将defaultdicts的defaultdict转换为dicts的dict?

  5. 5

    如何使用嵌套的dicts展平一个dicts列表

  6. 6

    如何从python中的dicts列表创建dicts?

  7. 7

    当dict值是另一个列表时,该dict的过滤列表

  8. 8

    如何进行dict计算并插入python中的另一个优化dict

  9. 9

    当值是另一个dict时从dict获取密钥

  10. 10

    当值是另一个dict时从dict获取密钥

  11. 11

    将一个dict作为值添加到另一个dict将覆盖先前的值

  12. 12

    Scrapy。在解析结果中创建复杂结构(dict中的dict)

  13. 13

    用dict遍历一个元组

  14. 14

    如何使用dict()从一个文件到另一个python文件

  15. 15

    如何在dict创建过程中从另一个值构建Python dict值?

  16. 16

    比较python 2中的两个dicts列表

  17. 17

    通过Python中的dict值来自另一个文件的变量

  18. 18

    在 python dict 中添加键的新值。来自另一个文件的 jsom

  19. 19

    python dicts of dicts out of python dicts

  20. 20

    python dicts的统一,同时保持值的元组

  21. 21

    检查dict键是否在dict的列表(元组)中

  22. 22

    使用从另一个python文件中的文件导入的python dict

  23. 23

    在python中弱引用另一个dict的项

  24. 24

    当每个值是一个dict时,将数据框保存为excel

  25. 25

    发出初始化类型字典的一个变量和类型dict的另一个变量的问题

  26. 26

    如何在python 2.7中基于另一个数组对一个multiarray dict排序

  27. 27

    在 Ansible 中检查 Dict 中键的值

  28. 28

    如何将嵌套的 Dict 列表与另一个嵌套的 Dict 列表进行比较,并从另一个更新一个中的值

  29. 29

    如何从另一个字典中减去一个字典的值并将结果写入第三个字典?

热门标签

归档