【Python】查找两个表格是否存在相同元素

其实就是字典的应用,把其中一个表格做成字典(将需要查询的元素设为字典的键),然后读取另一个表格逐个在字典中查找

表1:

表2:

复制代码
import openpyxl

wb1 = openpyxl.load_workbook(r"C:\Users\Lenovo\Desktop\表1.xlsx")
ws1 = wb1["Sheet1"]
wb2 = openpyxl.load_workbook(r"C:\Users\Lenovo\Desktop\表2.xlsx")
ws2 = wb2["Sheet1"]

dict = {}
for row in ws1.iter_rows(min_row = 2,values_only=True):#按行遍历 ,第2行开始
    dict[row[0]]=[row[0],row[1],row[2],row[3],row[4]] #字典 {'张三': ['张三', '男', 202501, 21, 1], '李四': ['李四', '男', 202502, 22, 2], '王五': ['王五', '女', 202503, 23, 3], '赵六': ['赵六', '女', 202504, 24, 4]}

num = 1
for row in ws2.iter_rows(min_row = 2,values_only=True):#按行遍历
    num += 1 #行号
    if row[0] in dict:#如果需要查询的元素在字典中(将需要查询的元素设为字典的键)
        print(num,row[0],row[1],row[2],row[3],row[4]) #行号 姓名 性别 学号 年纪 班级
复制代码

结果:

另外,多个条件的话,可以把键做成元组,如:

dict1  =  {("学生1",1001):[11,22,33],("学生3",1002):[111,222,333]}
dict2  =  {("学生2",1001):[44,55,66],("学生4",1001):[1111,2222,3333]}

for i in dict1:
    for j in dict2:
        if i[1] == j[1]: #判断字典的 第二个键 是否相等
            print(j,j[0],j[1],dict2[j]) #字典的键(元组),键1,键2,字典的值

 

posted @   山鬼谣`  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
点击右上角即可分享
微信分享提示