检查字符串中'+'字符失效,无法拆分联系人号码与WhatsApp群组ID
问题分析与修复
你的代码存在两个关键问题,导致分类逻辑完全失效:
变量名拼写不一致
函数内定义的列表是lNumbers和lGroups,但追加元素时误用了lNumeros和lGrupos,这会引发NameError(若你没遇到报错,大概率是代码粘贴时的笔误)。判断逻辑错误
i[1:]取的是当前子列表从索引1开始的所有元素(比如第一个元素的i[1:]是[' +559999999-9999']),你是在检查"+"是否存在于这个列表中,而非检查子列表第二个元素(即号码/群组ID字符串)里是否包含"+"。正确的做法是直接针对i[1]这个字符串做判断。
修复后的代码
ctts = [['contactName', ' +559999999-9999'], ['groupName', ' ABCDEFabcdef123456']] def separateNumbersFromIDs(): lNumbers = [] lGroups = [] for item in ctts: # 检查第二个元素的字符串中是否包含"+" if "+" in item[1]: lNumbers.append(item) else: lGroups.append(item) return lNumbers, lGroups # 测试验证 numbers, groups = separateNumbersFromIDs() print("联系人号码列表:", numbers) print("群组ID列表:", groups)
修复说明
- 将
i[1:]改为item[1],直接针对存储号码/ID的字符串做包含检查 - 统一变量名,避免拼写错误(将
lNumeros/lGrupos修正为lNumbers/lGroups) - 把循环变量名
i改为item,提升代码可读性
内容的提问来源于stack exchange,提问作者ikigailess
相关产品推荐
相关产品推荐

