Python如何删除列表中字符串元素内<符号及之前的所有前导字符
处理方法
核心思路
遍历邮箱列表的每个元素,过滤<符号及该符号之前的所有内容,若邮箱中不存在<则直接保留原内容,可额外兼容处理可能存在的尾部>符号。
最简实现(列表推导式)
使用split按<分割字符串后取最后一段即可,一行代码完成处理:
listNew = ['john.smith@hotmail.com', 'Tom White <tom.white@gmail.com', '<connie.green@yahoo.com'] processed_emails = [email.split('<')[-1].rstrip('>') for email in listNew]
处理后的processed_emails输出结果为:['john.smith@hotmail.com', 'tom.white@gmail.com', 'connie.green@yahoo.com']
易读版循环实现
如果需要更清晰的逻辑方便后续修改,可使用常规循环写法:
listNew = ['john.smith@hotmail.com', 'Tom White <tom.white@gmail.com', '<connie.green@yahoo.com'] processed_emails = [] for email in listNew: lt_index = email.find('<') # 存在<符号时截取后面的内容,否则保留原内容 if lt_index != -1: clean_email = email[lt_index + 1:].rstrip('>') else: clean_email = email processed_emails.append(clean_email)
内容的提问来源于stack exchange,提问作者Sherman Chen
相关产品推荐
相关产品推荐

