Python|对列表中中断位置的元素进行分组
很多时候,我们在涉及和围绕Python分组时遇到问题。有时,我们可能会遇到一个特定的问题,我们需要在缺失元素上拆分和分组 N 个元素列表。让我们讨论一种可以执行此任务的方式。
方法:使用itemgetter() + map() + lambda() + groupby()
可以使用上述函数的组合来执行此任务,其中我们可以通过查找列表中的索引和值之间的差异来对使用 lambda函数计算的中断中的元素进行分组。 map()
用于组合逻辑,itemgetter 确保分组值。仅适用于 Python2。
# Python code to demonstrate working of
# Group elements on break positions in list
# using itemgetter() + map() + lambda() + groupby()
from itertools import groupby
from operator import itemgetter
# initialize list
test_list = [1, 2, 4, 5, 6, 8, 9, 11]
# printing original list
print("The original list is : " + str(test_list))
# Group elements on break positions in list
# using itemgetter() + map() + lambda() + groupby()
res = list(map(itemgetter(1), j) for i, j in
groupby(enumerate(test_list), lambda (x, y) : x - y))
# printing result
print("Grouping of elements at breaks : " + str(res))
输出 :
The original list is : [1, 2, 4, 5, 6, 8, 9, 11]
Grouping of elements at breaks : [[1, 2], [4, 5, 6], [8, 9], [11]]