按相似值对字符串列表进行分组

问题描述 投票:0回答:0

我想按相似性对字符串列表进行分组。

在我的例子中(这里简化是因为这个列表可能很大)它是一个 zip 文件的路径列表,如下所示:

["path/002_AC_HELICOPTEROS-MARINOS_20230329_210358_145T3_21049_00748_DMAU.zip",
 "path/002_AC_NOLAS_20230326_234440_145T2_20160_06473_VMS_UMS.zip",
 "path/002_AC_HELICOPTEROS-MARINOS_20230329_211105_145T3_21049_00748_FDCR.zip",
 "path/002_AC_HELICOPTEROS-MARINOS_20230329_205916_145T3_21049_00747_VMS_UMS.zip",
 "path/002_AC_NOLAS_20230326_235504_145T2_20160_06473_FDCR.zip"]

我想通过一个键对该列表中的字符串进行分组,但我还不知道如何定义它(我猜是用 lambda 但我无法弄清楚)以获得这样的结果列表:

[["path/002_AC_HELICOPTEROS-MARINOS_20230329_210358_145T3_21049_00748_DMAU.zip",
  "path/002_AC_HELICOPTEROS-MARINOS_20230329_211105_145T3_21049_00748_FDCR.zip"],
 ["path/002_AC_HELICOPTEROS-MARINOS_20230329_205916_145T3_21049_00747_VMS_UMS.zip"],
 ["path/002_AC_NOLAS_20230326_234440_145T2_20160_06473_VMS_UMS.zip",
  "path/002_AC_NOLAS_20230326_235504_145T2_20160_06473_FDCR.zip"]]

举个例子,第一个分组键是:

*_HELICOPTEROS-MARINOS_20230329_*_21049_00748_*.zip

第二个是:

*_HELICOPTEROS-MARINOS_20230329_*_21049_00747_*.zip

第三个:

*_NOLAS_20230326_*_20160_06473_*.zip
python python-3.x string list grouping
© www.soinside.com 2019 - 2024. All rights reserved.