以下是一个示例代码,用于判断列表中是否满足“A后面紧跟着B,中间没有任何其他事件”的条件:
def check_sequence(lst, a, b):
if a not in lst or b not in lst: # 如果a或b不在列表中,直接返回False
return False
index_a = lst.index(a) # 获取a的索引
index_b = lst.index(b) # 获取b的索引
if index_b != index_a + 1: # 如果b的索引不等于a的索引加1,说明不满足条件
return False
# 检查a和b之间是否有其他事件
for i in range(index_a + 1, index_b):
if lst[i] != b:
return False
return True
# 测试示例
event_list = ['A', 'B', 'B', 'C', 'D']
print(check_sequence(event_list, 'A', 'B')) # 输出 True
event_list = ['A', 'C', 'B', 'D']
print(check_sequence(event_list, 'A', 'B')) # 输出 False
这个示例代码中,check_sequence
函数接受三个参数:lst
是事件列表,a
和 b
是要检查的事件。函数首先检查 a
和 b
是否都在列表中,如果不在则直接返回 False
。然后获取 a
和 b
的索引,如果 b
的索引不等于 a
的索引加1,说明不满足条件,直接返回 False
。最后,使用一个循环来检查 a
和 b
之间是否有其他事件,如果有则返回 False
,否则返回 True
。