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

姓名列表拆分为名和姓列表失败:问题排查及优化方案求助

问题

我正在开发一个抓取姓名的爬虫,获取到的姓名列表(变量名names_clean)如下:

['Andy El-Bayeh', 'Bryan Philips', 'Rodney Ferro', "Jimmy L'almont", 'Andrew Thorn', 'Laurie Patton', 'Sharyn Grant', 'Jake Bertone', 'Nathan Reiche', 'Anthony James', 'Sasko Bosilkovski', 'Aimee Brown', 'Dan Sim', 'Allan Dib', 'Boyd Roberts', 'Jeremy Liddle', 'Danny', 'Bhavin Bagadia', 'Alexis Fenton', 'Simon Marmot', 'Jules Lund', 'Shane Lavagna-Slater', 'Stuart Phipps', 'Yvette Adams', 'Terry Wilson']

获取该列表的代码:

names = soup.find_all('div', class_='zp_xVJ20')
names_clean = [name.find('a').text.strip() for name in names]

需要将该列表拆分为两个列表:

  • 名(First name)列表
  • 姓(Last name)列表

尝试了以下代码,但得到的列表长度始终为24(应为25,缺失一个姓名):

names = soup.find_all('div', class_='zp_xVJ20')

first_name = []
last_name = []

for name in names:
    anchor = name.find('a')
    if anchor:
        full_name = anchor.text.strip()
            
        if len(full_name) == 1:
           first_name.append(full_name)
        else:
           split_name = full_name.split(' ', 1)  # Split at most once
        if len(split_name) > 1:
           first_name.append(split_name[0])
           last_name.append(split_name[1])

请问问题出在哪里?同时请提供更简洁的解决方案。


问题分析

  1. 单名处理逻辑遗漏:当遇到无空格的单名(比如Danny)时,split(' ', 1)会生成长度为1的列表,此时len(split_name) >1判断不成立,导致该姓名没有被添加到first_name列表,最终列表少了一个元素。
  2. 无效判断分支:len(full_name) ==1的判断完全多余,因为单名(如Danny)的长度远大于1,这个分支永远不会触发,无法处理实际的单名场景。

简洁解决方案

直接基于已有的names_clean列表处理,避免重复解析HTML,两种实现方式可选:

方式1:循环处理(可读性高)

first_names = []
last_names = []

for full_name in names_clean:
    name_parts = full_name.split(' ', 1)
    first_names.append(name_parts[0])
    # 有姓则添加,无姓则填充空字符串(可替换为None)
    last_names.append(name_parts[1] if len(name_parts) > 1 else '')

方式2:列表推导式(更简洁)

first_names = [name.split(' ', 1)[0] for name in names_clean]
last_names = [name.split(' ', 1)[1] if ' ' in name else '' for name in names_clean]

处理后两个列表长度均为25,单名对应的last_names位置会是空字符串(可根据需求调整为None或其他占位符)。


内容的提问来源于stack exchange,提问作者bSmall

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 21:08:16