python-3.x 如何根据轴对列表进行分组

j8yoct9x  于 2023-03-20  发布在  Python
关注(0)|答案(1)|浏览(140)

我有以下清单:

c_list= [[1,2,1],[4,6,8],[3,4,1],[3,2,8]

我想把列表中具有equal(最后一个元素)的元素分组,例如,我想得到结果:c_list= [[[1,2,1],[3,4,1]],[4,6,8],[3,2,8]]在这个结果中,你可以看到我有两个数组,一个是以1结尾的元素,另一个是以8结尾的元素。

fwzugrvs

fwzugrvs1#

按以下方式应用itertools.groupby

from itertools import groupby
from operator import itemgetter

c_list = [[1,2,1], [4,6,8], [3,4,1]]
gen_groups = (list(g) for _, g in groupby(sorted(c_list, key=itemgetter(2)), key=itemgetter(2)))
res = [g if len(g) > 1 else g[0] for g in gen_groups]
print(res)
[[[1, 2, 1], [3, 4, 1]], [4, 6, 8]]

相关问题