You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 06:48:17