如何修改Python循环代码实现按'0'分割字符串生成目标列表?
解决方案
你的需求是把连续的非0字符作为单个元素存入列表,而非逐个字符添加。这里提供两种实现方式:
方法一:修改循环逻辑(手动积累字符块)
通过维护一个临时变量来积累当前连续的非0字符,遇到0时将积累的字符块存入列表(如果不为空),遍历结束后处理最后一段字符:
str1 = "John000Doe000123" list1 = [] current_chunk = "" for char in str1: if char == "0": # 遇到0时,若已有积累的字符块,就加入列表并重置 if current_chunk: list1.append(current_chunk) current_chunk = "" continue # 非0字符则加入当前块 current_chunk += char # 处理字符串末尾的最后一段非0字符 if current_chunk: list1.append(current_chunk) print(list1) # 输出: ['John', 'Doe', '123']
方法二:利用字符串split方法(简洁实现)
直接用split('0')按0分割字符串,再过滤掉分割产生的空字符串(连续0会分割出空值):
str1 = "John000Doe000123" list1 = [chunk for chunk in str1.split('0') if chunk] print(list1) # 输出: ['John', 'Doe', '123']
内容的提问来源于stack exchange,提问作者Mayank Sharma
相关产品推荐
相关产品推荐

