以下是一个示例代码,可以按照分组并仅保留包含列表中值的组:
from itertools import groupby
def filter_group(groups, values):
result = []
for key, group in groupby(groups):
if key in values:
result.extend(list(group))
return result
# 示例数据
groups = ['A', 'B', 'B', 'C', 'A', 'C']
values = ['B', 'C']
filtered_groups = filter_group(groups, values)
print(filtered_groups)
输出:
['B', 'B', 'C', 'C']
在这个示例中,我们使用了itertools.groupby
函数将列表groups
按照相同的元素分组。然后,我们循环遍历每个组,并检查组的键是否在给定的值列表values
中。如果是的话,我们将这个组中的元素添加到结果列表中。
请注意,itertools.groupby
函数要求输入的列表已经按照分组的键进行排序。如果输入列表没有排序,你可以首先将其排序,再使用groupby
函数。
上一篇:按照分组并将值作为键
下一篇:按照分组并进行ifelse或替换