擅长:python、mysql、java
<p>实际上,您需要一个分组操作。使用字典按键分组,使用OrderedDict保持顺序:</p>
<pre><code>>>> from collections import OrderedDict
>>> groups = OrderedDict()
>>> A = [[1,2,3], [1,3,7], [2,1,3], [8,9,6], [3,7,9], [2,3,8], [1,2,4]]
>>> key = lambda l: l[0]
>>> for sub in A:
... groups.setdefault(key(sub),[]).append(sub)
...
>>> groups
OrderedDict([(1, [[1, 2, 3], [1, 3, 7], [1, 2, 4]]), (2, [[2, 1, 3], [2, 3, 8]]), (8, [[8, 9, 6]]), (3, [[3, 7, 9]])])
>>> B = list(groups.values())
>>> B
[[[1, 2, 3], [1, 3, 7], [1, 2, 4]], [[2, 1, 3], [2, 3, 8]], [[8, 9, 6]], [[3, 7, 9]]]
</code></pre>