如何将包含cos标识的Python一维列表按规则拆分生成嵌套子列表
你原来的代码只处理了含cos的元素,遇到其他元素直接跳过,没有追加到最新的子列表中,调整逻辑即可:
a = ["cos","3","4","5","cos1","4","5","cos2","1"] result = [] for item in a: if "cos" in item: # 遇到匹配cos的元素,新增子列表 result.append([item]) else: # 非匹配元素追加到最新的子列表末尾 result[-1].append(item) print(result)
运行后输出就是你需要的目标结构:
[["cos","3","4","5"],["cos1","4","5"],["cos2","1"]]
如果你的实际使用场景中,可能出现列表第一个元素不含cos的情况,可以加一层判断避免索引报错:
a = ["cos","3","4","5","cos1","4","5","cos2","1"] result = [] for item in a: if "cos" in item: result.append([item]) elif result: # 只有已有子列表存在时才追加元素 result[-1].append(item)
内容的提问来源于stack exchange,提问作者muyns
相关产品推荐
相关产品推荐

