如何基于字符串匹配对两个文件名列表进行分组?
按后缀匹配分组文件名
实现思路
核心是提取每个文件名中_xxkg格式的后缀作为匹配标识,先将L2的文件按后缀存入字典建立映射,再遍历L1匹配对应文件完成分组。
代码实现
L1 = ['D://carrot_25kg', 'D://banana_5kg', 'D://apple_50kg'] L2 = ['D://box3_5kg', 'D://box1_25kg', 'D://box2_50kg'] # 为L2构建后缀-文件路径的映射字典 suffix_map = {} for file_path in L2: # 提取_xxkg格式的后缀(从最后一个下划线开始截取) suffix = file_path[file_path.rfind('_'):] suffix_map[suffix] = file_path # 遍历L1,匹配对应文件生成分组结果 result = [] for file_path in L1: suffix = file_path[file_path.rfind('_'):] result.append([file_path, suffix_map[suffix]]) print(result)
运行结果
[['D://carrot_25kg', 'D://box1_25kg'], ['D://banana_5kg', 'D://box3_5kg'], ['D://apple_50kg', 'D://box2_50kg']]
扩展说明
如果存在多个文件对应同一后缀的场景,只需修改字典的value为列表,将同后缀文件存入列表即可:
suffix_map = {} for file_path in L2: suffix = file_path[file_path.rfind('_'):] if suffix not in suffix_map: suffix_map[suffix] = [] suffix_map[suffix].append(file_path)
内容的提问来源于stack exchange,提问作者mark
相关产品推荐
相关产品推荐

