美文网首页
Python比较字典形式的列表是否部分相等

Python比较字典形式的列表是否部分相等

作者: 天雨流芳hodo | 来源:发表于2019-09-27 13:29 被阅读0次

在工作中遇到有两个字典形式的列表list1、list2

list1 = [{"ID":"vat_invoice_type","value":"非电子发票","confidence":1.0,"position":""},
         {"ID":"vat_invoice_page_number","value":"发票联","confidence":0.97,"position":""},
         {"ID":"vat_invoice_cipher_field","value":"test1","confidence":0.98,"position":""},
         {"ID":"vat_invoice_drawer","value":"巧","confidence":0.95,"position":""}]
list2 = [{"value":"非电子发票","description":"发票类型","position":[],"ID":"vat_invoice_type"},
         {"value":"发票联","description":"发票联","position":[1433],"ID":"vat_invoice_page_number"},
         {"value":"test2","description":"密码区","position":[1020],"ID":"vat_invoice_cipher_field"}]

需求是当两个列表有共同ID时,比较对应value的值是否相等

1、首先找到共同ID

list1_keys = []
list2_keys = []
# 提取list1所有ID的值
for i in list1:
    key = i["ID"]
    list1_keys.append(key)
print(list1_keys)

# 提取list2所有ID的值
for i in list2:
    key = i["ID"]
    list2_keys.append(key)
print(list2_keys)

# 提取list1、list2的共同ID
common_keys = [x for x in list1_keys if x in list2_keys]
print(common_keys)

运行后提取到的共同ID结果:

['vat_invoice_type', 'vat_invoice_page_number', 'vat_invoice_cipher_field']

2、循环,根据共同ID查找字典中对应value的值

# 比较共同ID对应字典中value的值是否相等
for i in common_keys:
    for dict1 in list1:
        if dict1["ID"] == i:
            list1_value = dict1["value"]
            break

    for dict2 in list2:
        if dict2["ID"] == i:
            list2_value = dict2["value"]
            break

    if list1_value == list2_value:
        print("该ID %s对应的value %s %s 相等" % (i,list1_value,list2_value))
    else:
        print("该ID %s对应的value %s %s不相等" % (i,list1_value,list2_value))

运行结果:

该ID vat_invoice_type对应的value 非电子发票 非电子发票 相等
该ID vat_invoice_page_number对应的value 发票联 发票联 相等
该ID vat_invoice_cipher_field对应的value test1 test2不相等

相关文章

  • Python比较字典形式的列表是否部分相等

    在工作中遇到有两个字典形式的列表list1、list2 需求是当两个列表有共同ID时,比较对应value的值是否相...

  • Python 数据分析 numpy and pandas

    如果用 python 的列表和字典来作比较, 那么可以说 Numpy 是列表形式的,没有数值标签,而 Pandas...

  • Python学习——字典

    Python学习——字典 字典的外在样式如: { },字典内可包含各种数据,例如列表、字典,且其中以键值对的形式展...

  • LCP-01-猜数字

    解题思路 遍历两个列表,判断是否相等,相等则ans+=1 Python3代码

  • Python 字典 values() 方法

    Python 字典 values() 方法,以列表形式,返回字典中所有的值。 看下面的例子: dict={'Sex...

  • 01.03 笔记-字典的内建函数

    比较运算 == ,!= 注意:判断两个字典是否相等,只看键值对是否一样,不管键值对的顺序; 字典不支持比较大小 >...

  • Python之列表、字典、元祖常见操作

    Python 将列表转为字典 Python元祖转为字典

  • python 字典items()方法

    欢迎关注本人博客:云端筑梦师 描述 Python 字典 items() 方法以列表形式(并非直接的列表,若要返回列...

  • 【编程】python入门---字典04

    视频教程:B站 Siki学院 如何判断两个列表是否相等:两个列表长度相同,内容相同,顺序一样 如何判断两个字典是否...

  • python 小技巧

    1.获取列表中出现频率最多的值 判断翻转字符串是否相等 翻转字符串或数字、列表 字典排序 获取列表中最大值/最小值...

网友评论

      本文标题:Python比较字典形式的列表是否部分相等

      本文链接:https://www.haomeiwen.com/subject/epqdyctx.html