我想按相似性对字符串列表进行分组。
在我的例子中(这里简化是因为这个列表可能很大)它是一个 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