<p>由于相似性是基于除方括号<code>[...]</code>之间的内容之外的字符串,所以提取这些子字符串,使用分隔符(这里我使用了<code>"-"</code>)将它们连接起来,并将其用作字典的键<br/>
试试这个-</p>
<pre><code>import re
regex = re.compile(r'(.*?)\[.*?\]\.(.*)')
groupofgrids = {}
for item in tablenames:
matches = regex.findall(item)
if (len(matches) > 0 and len(matches[0]) == 2):
key = "-".join(matches[0])
if key in groupofgrids:
groupofgrids[key].append(item)
else:
groupofgrids[key] = [item]
import json
print json.dumps(groupofgrids,sort_keys=True, indent=4)
#OUTPUT
'''
{
"SCS_q102-SCS_q102_grid": [
"SCS_q102[{SCS_q102$_$_$SCS_q102_1}].SCS_q102_grid",
"SCS_q102[{SCS_q102$_$_$SCS_q102_2}].SCS_q102_grid",
"SCS_q102[{SCS_q102$_$_$SCS_q102_3}].SCS_q102_grid",
"SCS_q102[{SCS_q102$_$_$SCS_q102_4}].SCS_q102_grid"
],
"SCS_q107-SCS_q107_grid": [
"SCS_q107[{SCS_q107$_$_$SCS_q107_1}].SCS_q107_grid",
"SCS_q107[{SCS_q107$_$_$SCS_q107_2}].SCS_q107_grid",
"SCS_q107[{SCS_q107$_$_$SCS_q107_3}].SCS_q107_grid"
]
}
'''
</code></pre>
<p>如果需要嵌套列表,请执行以下操作-</p>
^{pr2}$