如何按指定关键词将列表拆分为嵌套列表?附示例说明
如何按指定关键词分组生成嵌套列表?
嘿,这事儿其实挺简单的,咱们可以通过关键词匹配+列表处理来实现需求。核心思路就是:针对每个指定的关键词,从原始列表里筛选出以该关键词开头的元素,把这些元素打包成子列表,最后把所有子列表整合起来就是目标的嵌套列表了。
先看最简洁的实现方式,用列表推导式一步到位:
# 原始数据列表 original_list = ['WBS1','WBS2','WAY1','WAY3','WBR1'] # 将关键词统一放到一个列表,方便批量处理 target_keywords = ['WBS', 'WAY', 'WBR'] # 生成嵌套列表:外层遍历关键词,内层筛选匹配元素 nested_list = [[item for item in original_list if item.startswith(key)] for key in target_keywords] print(nested_list)
运行这段代码后,输出结果是:[['WBS1', 'WBS2'], ['WAY1', 'WAY3'], ['WBR1']]
这里提个小细节:你期望的嵌套列表里WAY组包含WAY2,但原始列表里并没有这个元素,所以实际结果里是['WAY1','WAY3'],如果是笔误的话,调整原始列表或者期望结果就可以啦。
要是你觉得列表推导式有点抽象,也可以用普通循环来写,逻辑完全一致,更直观:
original_list = ['WBS1','WBS2','WAY1','WAY3','WBR1'] target_keywords = ['WBS', 'WAY', 'WBR'] nested_list = [] # 遍历每个关键词 for key in target_keywords: sub_list = [] # 遍历原始列表,筛选匹配元素 for item in original_list: if item.startswith(key): sub_list.append(item) # 将子列表加入嵌套列表 nested_list.append(sub_list) print(nested_list)
两种方式都能实现分组需求,列表推导式更简洁,普通循环可读性更强,根据你的习惯选就行~
内容的提问来源于stack exchange,提问作者Jack Chong
相关产品推荐
相关产品推荐

