如何用Python从含下划线的邮箱地址中提取规范姓名
如何从邮箱地址中提取格式化的姓名列表?
现有代码尝试从邮箱地址分离姓名与域名,但输出格式不符合预期:
def get_name(email_list): x = [] for name in email_list: y, _, _ = name.partition("@") split_name = y.split('_') x.append(split_name) return(x)
输入示例
get_name(["arthur_blake@gmail.com", "bob_dylan@gmail.com"])
当前输出
[['arthur', 'blake'], ['bob', 'dylan']]
期望输出
['Arthur Blake', 'Bob Dylan']
修改方案
需要将拆分后的小写姓名片段转为首字母大写,再用空格拼接成完整姓名字符串,而非保留嵌套列表结构:
- 对拆分后的每个姓名片段调用
capitalize()方法实现首字母大写 - 使用
' '.join()将大写后的片段拼接成单个字符串 - 将拼接好的字符串添加到结果列表中
修改后的完整代码:
def get_name(email_list): x = [] for name in email_list: y, _, _ = name.partition("@") split_name = y.split('_') # 首字母大写并拼接成字符串 full_name = ' '.join(part.capitalize() for part in split_name) x.append(full_name) return x
测试验证
运行输入示例后,输出将与期望一致:
['Arthur Blake', 'Bob Dylan']
内容的提问来源于stack exchange,提问作者Catrina Steckler
相关产品推荐
相关产品推荐

