<ol>
<li><p>首先,从<code>filelist</code>和<code>unique_filelist</code>中删除“.dat”后缀</p>
<p><code>mod_filelist = [s[:-4] for s in filelist]
mod_unique_filelist = [s[:-4] for s in unique_filelist]</code></p></li>
<li><p>然后,拆分<code>mod_filelist</code>上的<code>_</code>项</p>
<p><code>mod_filelist = [s.split('_') for s in mod_filelist]</code></p></li>
<li><p>之后,删除字母字符后面的数字</p>
<p><code>mod_filelist = [[re.sub(r"(\w)(\d)+", r"\1", sub_str) for sub_str in s] for s in mod_filelist]</code></p></li>
<li><p>合并修改后的<code>filelist</code>中每个项的子字符串</p>
<p><code>mod_filelist = ['_'.join(sub for sub in s) for s in mod_filelist]</code></p></li>
<li><p>创建所需的嵌套列表,每个列表中有一个元素</p>
<p><code>result = [[unique_fname] for unique_fname in unique_filelist]</code></p></li>
<li><p>创建一个regex,将每个唯一的文件名作为一个组</p>
<p><code>filenames_re = re.compile(r'|'.join('(' + ufname + ')' for ufname in mod_unique_filelist))</code></p></li>
<li><p>最后,根据需要填充<code>result</code></p>
<p><code>for i, mod_fname in enumerate(mod_filelist):
m = re.fullmatch(filenames_re, mod_fname)
result[m.lastindex-1].append(filelist[i])</code></p></li>
</ol>
<p>希望有帮助:)</p>