如何用openpyxl读取Excel列值并跳过重复行存入双列表
使用openpyxl读取Excel并跳过重复行存入列表
可以通过以下步骤实现需求:利用openpyxl读取Excel数据,用集合记录已出现过的行组合(避免重复),再将符合条件的数据存入目标列表。
代码实现
from openpyxl import load_workbook # 加载Excel工作簿,替换为你的文件路径 wb = load_workbook(filename="your_excel_file.xlsx") # 选择目标工作表,可替换为具体工作表名如wb["Sheet1"] ws = wb.active # 初始化目标列表和去重集合 L1 = [] # 存储Names L2 = [] # 存储continental seen_combinations = set() # 遍历数据行,假设第一行是表头,从第二行开始读取 for row in ws.iter_rows(min_row=2, values_only=True): # 假设Names在第1列(索引0),continental在第2列(索引1),可根据实际调整 name = row[0] continent = row[1] # 用元组存储当前行的组合,用于重复判断 current_comb = (name, continent) # 组合未出现过则存入列表和集合 if current_comb not in seen_combinations: seen_combinations.add(current_comb) L1.append(name) L2.append(continent) # 验证结果 print("L1 =", L1) print("L2 =", L2)
关键说明
iter_rows(min_row=2, values_only=True):从第二行开始读取数据,values_only=True直接获取单元格值,无需处理单元格对象。seen_combinations集合:利用集合快速查找的特性,判断当前行的(name, continent)组合是否已出现,避免重复存储。- 列索引调整:如果你的Names、continental不在第1、2列,修改
row[0]和row[1]的索引即可(索引从0开始)。
若只需基于单一列判断重复(比如仅判断Names),只需将current_comb改为单一值(如current_comb = name)即可。
内容的提问来源于stack exchange,提问作者anu
相关产品推荐
相关产品推荐

