如何有效地将字典中的字符串列表与Python中的另一个字典列表进行比较?

巴兰通吉夫

我想将字典中的字符串列表与Python中的另一个字典列表进行比较。如果中的href中的secondary_list无法使用main_listhref则将附加到中main_list

基于此要求,实现了以下代码。

main_list = [
    {'href': 'red'},
    {'href': 'yellow'},
    {'href': 'yellow'},
]

secondary_list = [
    {'href': 'yellow'},
    {'href': 'redf'},
    {'href': 'blue'},
]
for g in secondary_list:

    if not any(d.get('href', None) == g["href"] for d in main_list):
        main_list.append({'href': g["href"]})

但是,如果我们在两个字典中都有一个很大的列表,则使用两个for循环的实现可能效率不高。

我可以知道上面的代码是否可以更高效,更紧凑?更好的是,如果存在我不知道的软件包?

丹妮·梅塞乔(Dani Mesejo)

您可以执行以下O(n)复杂操作:

main_set = {frozenset(g.items()) for g in main_list}
secondary_set = {frozenset(g.items()) for g in secondary_list}

main_list.extend(dict(g) for g in secondary_set - main_set)
print(main_list)

输出量

[{'href': 'red'}, {'href': 'yellow'}, {'href': 'yellow'}, {'href': 'blue'}, {'href': 'redf'}]

这个想法是创建冻结字典集以frozenset(g.items())发现差异并转换回字典。您可以将Frozenset视为哈希

特别是对于您的情况,单个密钥词典的所有密钥都相同,则可以执行以下操作:

main_set = {v for d in main_list for v in d.values()}
secondary_set = {v for d in secondary_list for v in d.values()}

main_list.extend({"href": v} for v in (secondary_set - main_set))
print(main_list)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我应该如何遍历Python 2.6字典并有效地检查另一个字典以查看是否存在相同的密钥?

来自分类Dev

如何有效地检查数组中的任何子字符串是否包含在另一个字符串中

来自分类Dev

Python:对字符串列表进行排序,以便它们出现在另一个字符串中

来自分类Dev

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

来自分类Dev

用另一个字符串列表对字符串列表进行排序

来自分类Dev

Python将字典列表转换为另一个字典列表

来自分类Dev

使用另一个字符串列表对字符串列表进行排序

来自分类Dev

如何寻找另一个字符串中的字符串列表?

来自分类Dev

如何根据python中另一个字典键的匹配来修改字典中的键值列表?

来自分类Dev

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

来自分类Dev

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

来自分类Dev

有效地将字典值与列表项进行比较

来自分类Dev

查找字符串列表中的字符串是否在Esper中的另一个字符串列表中

来自分类Dev

如何有效地检查数组中的任何子字符串是否包含在另一个字符串中

来自分类Dev

如何使用与另一个列表的比较来对列表中的字典进行排序

来自分类Dev

将字符串列表复制到另一个字符串列表

来自分类Dev

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

来自分类Dev

如何将字典中的键与列表中的元素进行匹配,并将这些键值存储到python中的另一个字典中?

来自分类Dev

根据另一个字符串列表对字符串列表进行排序

来自分类Dev

Java-在另一个字符串列表中搜索关键字列表

来自分类Dev

Python将字典列表转换为另一个字典列表

来自分类Dev

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

来自分类Dev

如何基于Python中的匹配键将键值对添加到另一个字典列表中的现有字典列表中

来自分类Dev

如何有效地比较两个字典列表以宣布“赢家”

来自分类Dev

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

来自分类Dev

如何从另一个 python 字典中获取一个字典中的相应列表值,其中它们被列为键,比较并打印出一个 csv?

来自分类Dev

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

来自分类Dev

如何在 JavaScript 中的字符串数组中有效地查找包含另一个字符串的组字符串?

来自分类Dev

如何将字典附加到 Python3 中的另一个字典字符串键?

Related 相关文章

  1. 1

    我应该如何遍历Python 2.6字典并有效地检查另一个字典以查看是否存在相同的密钥?

  2. 2

    如何有效地检查数组中的任何子字符串是否包含在另一个字符串中

  3. 3

    Python:对字符串列表进行排序,以便它们出现在另一个字符串中

  4. 4

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

  5. 5

    用另一个字符串列表对字符串列表进行排序

  6. 6

    Python将字典列表转换为另一个字典列表

  7. 7

    使用另一个字符串列表对字符串列表进行排序

  8. 8

    如何寻找另一个字符串中的字符串列表?

  9. 9

    如何根据python中另一个字典键的匹配来修改字典中的键值列表?

  10. 10

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

  11. 11

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

  12. 12

    有效地将字典值与列表项进行比较

  13. 13

    查找字符串列表中的字符串是否在Esper中的另一个字符串列表中

  14. 14

    如何有效地检查数组中的任何子字符串是否包含在另一个字符串中

  15. 15

    如何使用与另一个列表的比较来对列表中的字典进行排序

  16. 16

    将字符串列表复制到另一个字符串列表

  17. 17

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

  18. 18

    如何将字典中的键与列表中的元素进行匹配,并将这些键值存储到python中的另一个字典中?

  19. 19

    根据另一个字符串列表对字符串列表进行排序

  20. 20

    Java-在另一个字符串列表中搜索关键字列表

  21. 21

    Python将字典列表转换为另一个字典列表

  22. 22

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

  23. 23

    如何基于Python中的匹配键将键值对添加到另一个字典列表中的现有字典列表中

  24. 24

    如何有效地比较两个字典列表以宣布“赢家”

  25. 25

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

  26. 26

    如何从另一个 python 字典中获取一个字典中的相应列表值,其中它们被列为键,比较并打印出一个 csv?

  27. 27

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

  28. 28

    如何在 JavaScript 中的字符串数组中有效地查找包含另一个字符串的组字符串?

  29. 29

    如何将字典附加到 Python3 中的另一个字典字符串键?

热门标签

归档