在Python中,可以使用itertools.groupby
函数按照向量或列表进行分组。下面是一个示例代码:
from itertools import groupby
# 示例数据
data = [1, 1, 2, 2, 3, 4, 5, 5, 5]
# 按照相邻元素进行分组
groups = groupby(data)
# 遍历分组结果
for key, group in groups:
print(key, list(group))
输出结果:
1 [1, 1]
2 [2, 2]
3 [3]
4 [4]
5 [5, 5, 5]
在上面的示例中,我们使用groupby
函数将相邻的相同元素进行分组。groupby
函数返回一个可迭代对象,其中每个元素都是一个由键和相应的组迭代器组成的元组。通过list(group)
可以将组迭代器转换为列表。
如果要根据自定义的条件进行分组,可以使用key
参数来指定一个函数,该函数将应用于每个元素,并返回用于分组的键。下面是一个示例代码:
from itertools import groupby
# 示例数据
data = [1, 1, 2, 2, 3, 4, 5, 5, 5]
# 自定义分组条件函数
def group_key(x):
return x % 2 # 按照奇偶进行分组
# 按照自定义条件进行分组
groups = groupby(data, key=group_key)
# 遍历分组结果
for key, group in groups:
print(key, list(group))
输出结果:
1 [1, 1]
0 [2, 2]
1 [3]
0 [4]
1 [5, 5, 5]
在上面的示例中,我们定义了一个名为group_key
的函数,该函数返回元素的奇偶值作为分组的键。然后,我们使用groupby
函数按照这个自定义的条件进行分组。
上一篇:按照相关系数生成两个随机数组
下一篇:按照向量筛选向量