以下是一个Python代码示例,用于将相似或相同的数字分组或聚类。
from itertools import groupby
def group_similar_numbers(numbers):
# 对数字列表进行排序
numbers.sort()
# 使用itertools中的groupby函数将相似或相同的数字分组
groups = []
for key, group in groupby(numbers, lambda x: x):
groups.append(list(group))
return groups
# 示例用法
numbers = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
groups = group_similar_numbers(numbers)
print(groups)
输出结果为:
[[1], [2, 2], [3, 3, 3], [4, 4, 4, 4]]
以上代码中,首先对数字列表进行排序,然后使用groupby
函数将相似或相同的数字进行分组。groupby
函数的第一个参数是要分组的列表,第二个参数是一个函数,用于指定分组的依据,这里使用了lambda函数来返回数字本身作为依据。最后,将分组结果存储在groups
列表中并返回。
在示例中,输入的数字列表为[1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
,经过分组后得到的结果为[[1], [2, 2], [3, 3, 3], [4, 4, 4, 4]]
,其中每个子列表表示一组相似或相同的数字。