擅长:python、mysql、java
<p>您可以使用regex(<a href="https://docs.python.org/2/library/re.html" rel="nofollow">^{<cd1>}</a>模块)和<a href="https://docs.python.org/2/library/collections.html#collections.defaultdict" rel="nofollow">^{<cd2>}</a>来实现这一点。以下内容适用于输入字符串的非数字/数字部分的任意长度:</p>
<pre><code>import re
from collections import defaultdict
def str_dig(s): # str_dig('ABC345') -> ('ABC', '345')
return re.match('([^\d]+)(\d+)', s).groups()
lst=['AB4', 'AB3','AC3', 'BC4', 'BC5'] # do NOT shadow list!
d = defaultdict(list)
for x, y in map(str_dig, lst): # map applies the str_dig function to all in lst
d[x].append(y)
d[y].append(x)
# d['AB']: ['4', '3'], d['3']: ['AB', 'AC']
</code></pre>