Python按指定元素分割字符串列表的实现方法咨询
列表分割功能适配字符串列表方案
你的原有逻辑本身是支持任意可比较类型的列表元素的,只需要调整两个参数即可适配字符串列表场景:
- 将输入的整数列表替换为你的目标字符串列表
- 将判断条件中的触发分割值
5替换为你指定的触发分割字符串
示例代码(以触发分割元素为字符串"split"为例)
# 替换为你的字符串列表 str_list = ["a", "b", "c", "split", "d", "e", "split", "f", "g", "split"] arrays = [[str_list[0]]] # 触发分割的元素替换为目标字符串 split_trigger = "split" for i in range(1, len(str_list)): if str_list[i] != split_trigger: arrays[-1].append(str_list[i]) else: arrays.append([str_list[i]]) print(arrays)
输出结果
[['a', 'b', 'c'], ['split', 'd', 'e'], ['split', 'f', 'g'], ['split']]
通用封装方案(兼容整数、字符串等所有可比较类型)
你可以把逻辑封装成通用函数,不用每次手动修改参数:
def split_list_by_trigger(origin_list: list, split_trigger) -> list: if not origin_list: return [] result = [[origin_list[0]]] for item in origin_list[1:]: if item != split_trigger: result[-1].append(item) else: result.append([item]) return result # 字符串场景调用示例 str_list = ["苹果", "香蕉", "分割", "橙子", "分割", "葡萄"] print(split_list_by_trigger(str_list, "分割")) # 整数场景调用示例 num_list = [0,1,2,3,4,5,1,2,3,4,5] print(split_list_by_trigger(num_list, 5))
内容的提问来源于stack exchange,提问作者Dinindu Theekshana
相关产品推荐
相关产品推荐

