以下是一个解决这个问题的示例代码:
from collections import defaultdict
def count_group_changes(data):
group_changes = defaultdict(int)
prev_timestamp = None
prev_group = None
for timestamp, group in data:
if prev_timestamp and prev_group:
if group != prev_group:
group_changes[prev_group] += 1
prev_timestamp = timestamp
prev_group = group
return group_changes
data = [
(1, 'A'),
(2, 'A'),
(3, 'B'),
(4, 'B'),
(5, 'C'),
(6, 'C'),
(7, 'A'),
(8, 'B'),
(9, 'B'),
(10, 'B')
]
changes = count_group_changes(data)
for group, count in changes.items():
print(f"Group {group} changed {count} times")
在这个示例代码中,我们使用defaultdict
来创建一个默认值为0的字典group_changes
来存储每个组的变化次数。然后,我们遍历数据列表,对于每个时间戳和组,我们检查它是否与前一个时间戳和组不同。如果不同,则将前一个组的变化次数加1。最后,我们打印每个组的变化次数。输出结果为:
Group A changed 1 times
Group B changed 2 times
Group C changed 1 times