以下是一个示例代码,演示了如何按序列分组:
def group_sequence(sequence):
groups = [] # 用于存储分组结果的列表
current_group = [] # 当前分组
# 遍历序列中的每个元素
for item in sequence:
if len(current_group) == 0:
# 如果当前分组为空,则直接将元素添加到当前分组中
current_group.append(item)
else:
# 如果当前元素与当前分组的最后一个元素相等,则将元素添加到当前分组中
if item == current_group[-1]:
current_group.append(item)
else:
# 如果当前元素与当前分组的最后一个元素不相等,则将当前分组添加到分组列表中,并创建一个新的分组
groups.append(current_group)
current_group = [item]
# 添加最后一个分组到分组列表中
groups.append(current_group)
return groups
# 测试示例
sequence = [1, 1, 2, 3, 3, 3, 4, 4, 5, 5, 5, 5]
result = group_sequence(sequence)
print(result)
输出结果为:
[[1, 1], [2], [3, 3, 3], [4, 4], [5, 5, 5, 5]]
在上述示例代码中,我们定义了一个函数group_sequence
,它接受一个序列作为输入,并返回按序列分组的结果。我们使用了两个列表groups
和current_group
来分别存储分组的结果和当前的分组。通过遍历序列中的每个元素,并将元素添加到适当的分组中,我们实现了按序列分组的功能。最后,返回分组列表作为结果。
请注意,上述示例代码假设序列中的元素是可哈希的,因为我们使用了条件item == current_group[-1]
来比较元素的相等性。如果序列中的元素是不可哈希的(例如,列表),则需要使用其他比较方法来判断元素是否相等。