筛选字典中不在另一个字典中的值

Stonebe

给出了两个字典mydict1mydict2键-值对,mydict2如果值已经包含在应该被删除mydict1,不管关键的且不论值的顺序。

下面的代码提供正确的输出mydict2 = {'key6': [2,1,4], 'key4': [2]}但是,它将用作较大代码的一部分。是否有一种更好的方法,例如更具植物性的方法来编写,以使其更紧凑,更有效而无需功能?

mydict1 = {'key1':[1],'key2':[1,2],'key3':[1,2,3]}
mydict2 = {'key4':[2],'key5':[2,1],'key6':[2,1,4]}
mydict3 = {}

for md2 in mydict2:
    isindict = False
    for md1 in mydict1:
        isindict = isindict|(sorted(mydict1[md1])==sorted(mydict2[md2]))
    if not isindict:
        mydict3[md2] = mydict2[md2]
mydict2 = mydict3

从列表中删除项目比较字典对字典进行条件过滤的解决方案无法直接传递。

鲁济姆

使用列表推导和字典推导对所有值进行排序,mydict2然后检查其中的排序值mydict1是否在其中:

mydict1 = {'key1':[1],'key2':[1,2],'key3':[1,2,3]}
mydict2 = {'key4':[2],'key5':[2,1],'key6':[2,1,4]}

vals = [tuple(sorted(x)) for x in mydict1.values()]
mydict2 = {k:v for (k,v) in mydict2.items() if tuple(sorted(v)) not in vals}

print(mydict2)

或者,一行:

mydict1 = {'key1':[1],'key2':[1,2],'key3':[1,2,3]}
mydict2 = {'key4':[2],'key5':[2,1],'key6':[2,1,4]}

mydict2 = {k:v for (k,v) in mydict2.items() 
        if tuple(sorted(v)) not in [tuple(sorted(x)) for x in mydict1.values()]}

print(mydict2)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将字典的前2个最大键和值放在另一个字典中

来自分类Dev

将一个字典的元素与另一个字典中的值范围进行比较

来自分类Dev

如何从字典数组中获取字典的数组(例如arrayGroupBy),其中某个键的值与另一个字典键的值匹配

来自分类Dev

根据同一个字典中的另一个值python设置的值

来自分类Dev

使用键,一个字典中的值来获取python中另一个字典中的值

来自分类Dev

从一个字典聚合值以在Python中填充另一个

来自分类Dev

将字典中的值列表除以另一个字典中的值列表

来自分类Dev

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

来自分类Dev

Ansible-检查列表中的元素在另一个字典中是否没有相同的值

来自分类Dev

在Perl的另一个字典中追加字典

来自分类Dev

从另一个字典中删除字典(python 3中的奇怪行为)

来自分类Dev

如果另一个字典中存在项(键和值),则从它们中删除

来自分类Dev

将字典的值列表替换为另一个字典中的对应键值映射

来自分类Dev

如何遍历字典中的键并与另一个字典中的键/值匹配

来自分类Dev

创建一个值与另一个字典中的键相同的字典

来自分类Dev

用函数中的另一个字典替换字典的内容-Python

来自分类Dev

运用字典中的元素来创建另一个字典

来自分类Dev

将一个字典的元素与另一个字典中的值范围进行比较

来自分类Dev

python,使用理解选择性地将值从一个字典弹出到另一个字典中

来自分类Dev

将两个字典值合并为一个,然后将其添加到Python中的另一个字典中

来自分类Dev

识别一个字典中的键,并使用它来修改另一个字典的值

来自分类Dev

将包含列表的字典追加到python中的另一个字典

来自分类Dev

将一个字典中的值与 Python 中另一个字典中的值进行比较

来自分类Dev

在另一个字典中的字典中查找值

来自分类Dev

从另一个字典中删除重复值

来自分类Dev

将字典中的键复制到另一个字典

来自分类Dev

使用另一个字典列表中的键对字典列表进行排序

来自分类Dev

过滤字典以包含满足特定条件的另一个字典中的值

来自分类Dev

如何根据一个字典在 Python 中查询另一个字典的值来修改或创建字典

Related 相关文章

  1. 1

    将字典的前2个最大键和值放在另一个字典中

  2. 2

    将一个字典的元素与另一个字典中的值范围进行比较

  3. 3

    如何从字典数组中获取字典的数组(例如arrayGroupBy),其中某个键的值与另一个字典键的值匹配

  4. 4

    根据同一个字典中的另一个值python设置的值

  5. 5

    使用键,一个字典中的值来获取python中另一个字典中的值

  6. 6

    从一个字典聚合值以在Python中填充另一个

  7. 7

    将字典中的值列表除以另一个字典中的值列表

  8. 8

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

  9. 9

    Ansible-检查列表中的元素在另一个字典中是否没有相同的值

  10. 10

    在Perl的另一个字典中追加字典

  11. 11

    从另一个字典中删除字典(python 3中的奇怪行为)

  12. 12

    如果另一个字典中存在项(键和值),则从它们中删除

  13. 13

    将字典的值列表替换为另一个字典中的对应键值映射

  14. 14

    如何遍历字典中的键并与另一个字典中的键/值匹配

  15. 15

    创建一个值与另一个字典中的键相同的字典

  16. 16

    用函数中的另一个字典替换字典的内容-Python

  17. 17

    运用字典中的元素来创建另一个字典

  18. 18

    将一个字典的元素与另一个字典中的值范围进行比较

  19. 19

    python,使用理解选择性地将值从一个字典弹出到另一个字典中

  20. 20

    将两个字典值合并为一个,然后将其添加到Python中的另一个字典中

  21. 21

    识别一个字典中的键,并使用它来修改另一个字典的值

  22. 22

    将包含列表的字典追加到python中的另一个字典

  23. 23

    将一个字典中的值与 Python 中另一个字典中的值进行比较

  24. 24

    在另一个字典中的字典中查找值

  25. 25

    从另一个字典中删除重复值

  26. 26

    将字典中的键复制到另一个字典

  27. 27

    使用另一个字典列表中的键对字典列表进行排序

  28. 28

    过滤字典以包含满足特定条件的另一个字典中的值

  29. 29

    如何根据一个字典在 Python 中查询另一个字典的值来修改或创建字典

热门标签

归档