如何将Python列表按指定分隔元素拆分为多个子列表
按指定分隔符拆分列表为多个子列表
你当前的代码存在两个核心问题,导致输出不符合预期:
- 仅维护了一个全局列表
ll,所有非'D'的元素都会被追加到这同一个列表中,没有实现分段存储子列表的逻辑 - 每次追加元素后立刻打印当前列表,因此输出的是元素逐步追加的扩展过程,而非拆分后的独立子列表
可直接运行的实现代码
acq = ['A1', 'A2', 'D', 'A3', 'A4', 'A5', 'D', 'A6'] res = [] temp = [] for val in acq: if val == 'D': # 遇到分隔符时,若当前临时子列表非空则存入结果,随后重置临时列表 if temp: res.append(temp) temp = [] else: temp.append(val) # 循环结束后,追加最后一段未被分隔符收尾的子列表 if temp: res.append(temp) # 打印结果验证 for sub in res: print(sub)
运行输出
执行上述代码后将得到你预期的拆分结果:
['A1', 'A2'] ['A3', 'A4', 'A5'] ['A6']
补充说明:该写法自动兼容边界场景,包括列表首尾存在分隔符、连续出现多个分隔符的情况,不会生成无意义的空子列表。
内容的提问来源于stack exchange,提问作者lpt
相关产品推荐
相关产品推荐

