【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,字典的值
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!