以下是一个示例代码,展示了如何按照两个操作对数据进行分组:
from itertools import groupby
# 定义操作函数
def operation1(data):
# 这是一个示例操作函数,根据是否为偶数返回 True 或 False
return data % 2 == 0
def operation2(data):
# 这是另一个示例操作函数,根据是否为质数返回 True 或 False
if data < 2:
return False
for i in range(2, int(data**0.5) + 1):
if data % i == 0:
return False
return True
# 原始数据
data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 按两个操作进行分组
grouped_data = []
for key, group in groupby(data, key=lambda x: (operation1(x), operation2(x))):
grouped_data.append(list(group))
# 打印分组结果
for group in grouped_data:
print(group)
在这个示例中,我们定义了两个操作函数 operation1
和 operation2
。operation1
根据数值是否为偶数返回 True 或 False,而 operation2
根据数值是否为质数返回 True 或 False。
然后,我们使用 groupby
函数对原始数据进行分组。在 groupby
函数中,我们传入一个 key
函数,该函数返回一个元组,包含两个操作函数的结果。这样,groupby
函数会根据这个元组作为键来将数据分组。
最后,我们将分组结果打印出来。
上一篇:按两个不同条件过滤星期几