以下是一个示例代码,演示了如何按值对列表进行分组:
from collections import defaultdict
def group_by_value(lst):
groups = defaultdict(list)
for item in lst:
groups[item].append(item)
return list(groups.values())
# 示例用法
lst = [1, 2, 2, 3, 3, 3, 4, 5, 5]
result = group_by_value(lst)
print(result)
输出:
[[1], [2, 2], [3, 3, 3], [4], [5, 5]]
在上面的示例中,我们定义了一个名为group_by_value
的函数,它接受一个列表作为输入。然后,我们创建了一个defaultdict
对象,用于存储分组后的结果。defaultdict
是一个字典的子类,它可以自动为不存在的键创建默认值(在这个例子中,默认值是一个空的列表)。
接下来,我们遍历输入列表中的每个元素,并根据元素的值将其添加到相应的分组中。最后,我们将分组结果转换为列表并返回。
在示例中,输入列表lst
包含了一些重复的值,我们将这些值分组并返回了一个二维列表。每个子列表都包含了相同值的元素。