Python中如何按条件拆分嵌套数组元素并重复对应行
实现思路
- 遍历原始数组中的每一个子列表
- 对每个子列表,拆分出前序固定元素(除最后一位外的所有元素)和待拆分的字符串(子列表最后一位)
- 按逗号分割待拆分的字符串,得到多个独立的字符元素
- 遍历每个分割后的字符,将其和前序固定元素拼接为新的子列表,加入结果数组即可
Python 实现示例
普通写法:
# 原始数组 arr = [[1,2,3,4,'a,b,c,d'],[5,6,7,8,'e,f,g,h']] result = [] for sub_list in arr: # 提取前序固定元素 prefix = sub_list[:-1] # 拆分最后一位的逗号分隔字符串 split_items = sub_list[-1].split(',') # 生成新子列表存入结果 for item in split_items: result.append(prefix + [item]) # 替换原数组(可选) arr = result
简洁列表推导式写法:
arr = [sub[:-1] + [item] for sub in arr for item in sub[-1].split(',')]
JavaScript 实现示例
const arr = [[1,2,3,4,'a,b,c,d'],[5,6,7,8,'e,f,g,h']] const result = arr.flatMap(subList => { const prefix = subList.slice(0, -1) const splitItems = subList.at(-1).split(',') return splitItems.map(item => [...prefix, item]) })
注意事项
- 上述代码默认所有子列表最后一位都是格式合法的逗号分隔字符串,如果实际业务场景存在格式异常,可以增加类型判断、异常捕获逻辑做兼容
内容的提问来源于stack exchange,提问作者Sinner Lee
相关产品推荐
相关产品推荐

