<p>下面是一种方法(假设您希望在重叠的结果上有唯一的元素):</p>
<pre class="lang-py prettyprint-override"><code>def over(coll):
print('Input is:\n', coll)
# gather the lists that do overlap
overlapping = [x for x in coll if any(x_element in [y for k in coll if k != x for y in k] for x_element in x)]
# flatten and get unique
overlapping = sorted(list(set([z for x in overlapping for z in x])))
# get the rest
non_overlapping = [x for x in coll if all(y not in overlapping for y in x)]
# use the line bellow only if merged non-overlapping elements are desired
# non_overlapping = sorted([y for x in non_overlapping for y in x])
print('Output is"\n',[overlapping, non_overlapping])
coll = [['aaaa', 'aaab', 'abaa'],
['bbbb', 'bbbb'],
['aaaa', 'bbbb'],
['dddd', 'dddd'],
['bbbb', 'bbbb', 'cccc','aaaa']]
over(coll)
coll = [['aaaa', 'aaaa'], ['bbbb', 'bbbb']]
over(coll)
</code></pre>
<p>输出:</p>
<pre class="lang-sh prettyprint-override"><code>$ python3 over.py NORMAL
Input is:
[['aaaa', 'aaab', 'abaa'], ['bbbb', 'bbbb'], ['aaaa', 'bbbb'], ['dddd', 'dddd'], ['bbbb', 'bbbb', 'cccc', 'aaaa']]
Output is"
[['aaaa', 'aaab', 'abaa', 'bbbb', 'cccc'], [['dddd', 'dddd']]]
Input is:
[['aaaa', 'aaaa'], ['bbbb', 'bbbb']]
Output is"
[[], [['aaaa', 'aaaa'], ['bbbb', 'bbbb']]]
</code></pre>