栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Python中找到两个字典列表之间的区别

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Python中找到两个字典列表之间的区别

集合是解决此问题的完美解决方案。不幸的是,python不允许您将字典添加到集合中,因为它们是可变的,并且其哈希码可能会在插入和查找之间改变。

如果“冻结”项目以使其不可变,则可以将其添加到设置对象而不是列表中。然后使用减号运算符设定一个差值:

In [20]: i_set = { frozenset(row.items()) for row in incoming_rows }In [21]: a_set = { frozenset(row.items())  for row in available_row }In [22]: (i_set - a_set)Out[22]: {frozenset({('column_name', 'CONFIG_ID'), ('data_type', 'numeric(10,0)'), ('table_name', 'CONFIG')}), frozenset({('column_name', 'CREATE_DATE'), ('data_type', 'VARCHAr(20)'), ('table_name', 'CONFIG')}), frozenset({('column_name', 'CONFIG_TYPE'), ('data_type', 'varchar(1)'), ('table_name', 'CONFIG')})}

编辑:要解冻:

In [25]: [dict(i) for i in i_set - a_set]Out[25]: [{'column_name': 'CONFIG_ID',  'data_type': 'numeric(10,0)',  'table_name': 'CONFIG'}, {'column_name': 'CREATE_DATE',  'data_type': 'VARCHAr(20)',  'table_name': 'CONFIG'}, {'column_name': 'CONFIG_TYPE',  'data_type': 'varchar(1)',  'table_name': 'CONFIG'}]


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/668485.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号