Python如何判断仅含两种值的列表元素是否交替排列?
Python实现列表交替排列校验
核心逻辑
题目已经限定列表仅包含两种不同的字符串元素,因此只要保证所有相邻元素互不相同,就符合交替排列的要求。
代码实现
def is_alternating(lst: list) -> bool: # 长度小于等于1的列表默认符合要求,可按需调整该逻辑 if len(lst) <= 1: return True # 校验所有相邻元素是否互不相同 return all(lst[i] != lst[i-1] for i in range(1, len(lst)))
测试示例
用给出的测试用例验证效果:
list1 = ['A', 'C', 'A', 'C', 'A', 'C'] print(is_alternating(list1)) # 输出 True list2 = ['A', 'A', 'A', 'C', 'A', 'C'] print(is_alternating(list2)) # 输出 False list3 = ['A', 'C', 'C', 'C', 'A', 'C'] print(is_alternating(list3)) # 输出 False list4 = ['A', 'C', 'A', 'C', 'A', 'A'] print(is_alternating(list4)) # 输出 False
补充说明
如果后续需要兼容存在更多种元素的场景,可以在函数开头新增校验逻辑,先判断列表去重后的长度是否等于2,再执行后续校验即可。
内容的提问来源于stack exchange,提问作者Jatin Chaturvedi
相关产品推荐
相关产品推荐

