Python中如何在嵌套循环里打印两个CSV数组的匹配元素
解决CSV文件匹配元素打印问题
你只需要修改判断匹配后的打印语句,直接输出相等的元素即可(因为i和j此时完全相同,打印任意一个都可以):
import csv # 原代码遗漏了csv模块导入,需要补上 Array1=[] Array2=[] # 读取Test1.csv with open('Test1.csv', newline='') as csvfile: reader = csv.reader(csvfile) for row in reader: Array1.append(row) # 读取Test2.csv with open('Test2.csv', newline='') as csvfile: reader2 = csv.reader(csvfile) for row in reader2: Array2.append(row) # 检查并打印匹配元素 for i in Array1: for j in Array2: if i==j: print(i) # 直接打印匹配的行元素 # 也可以用更清晰的格式:print(f"找到匹配元素:{i}")
大数据量场景优化建议
嵌套循环的时间复杂度为O(n*m),当CSV文件行数较多时效率较低。可以将读取的行转为元组集合(列表不可哈希,无法直接存入集合),利用集合的交集操作快速获取匹配元素:
import csv # 读取文件并转为元组集合 with open('Test1.csv', newline='') as csvfile: set1 = set(tuple(row) for row in csv.reader(csvfile)) with open('Test2.csv', newline='') as csvfile: set2 = set(tuple(row) for row in csv.reader(csvfile)) # 获取交集并打印所有匹配元素 for match in set1 & set2: print(match)
内容的提问来源于stack exchange,提问作者Reem .H
相关产品推荐
相关产品推荐

