You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python实现:检查列表中某元素是否始终紧随另一元素

嘿,这个需求其实很好实现,我给你分享几个Python里简洁的写法,都是很容易理解的思路:

方法一:遍历索引逐个检查

最直接的方式就是遍历列表的每个元素,当遇到'a'的时候,立刻检查它的下一个元素是不是'b'。同时要注意避免索引越界——毕竟最后一个元素如果是'a'的话,根本没有下一个元素,肯定不符合要求。

def check_a_followed_by_b(lst):
    # 遍历到倒数第二个元素为止,防止索引越界
    for i in range(len(lst) - 1):
        if lst[i] == 'a':
            # 只要有一个'a'后面不是'b',直接返回False
            if lst[i+1] != 'b':
                return False
    # 所有'a'都符合要求,返回True
    return True

# 测试你的示例列表
test_list = ['x','y','z','a','b','2','3','5','2','1','5','fds','f','s','a','b']
print(check_a_followed_by_b(test_list))  # 输出:True

方法二:用zip配对相邻元素(更简洁)

利用Python的zip函数,把原列表和它的切片lst[1:]配对,这样每一组都是相邻的两个元素。然后用all()函数来确保所有'a'后面都跟着'b'。

def check_a_followed_by_b(lst):
    # 配对相邻元素,检查所有'a'的下一个元素都是'b'
    return all(second == 'b' if first == 'a' else True for first, second in zip(lst, lst[1:]))

# 测试示例
test_list = ['x','y','z','a','b','2','3','5','2','1','5','fds','f','s','a','b']
print(check_a_followed_by_b(test_list))  # 输出:True

一些边界情况的说明

  • 如果列表里没有'a':函数会返回True,因为没有违反规则的情况
  • 如果最后一个元素是'a':比如['a']或者['x','a'],函数会返回False(毕竟'a'后面没有元素,不满足要求)
  • 如果存在某个'a'后面不是'b':比如['a','c'],函数会立刻返回False

这些方法都很直观,应该就是你想要的简单实现啦~

内容的提问来源于stack exchange,提问作者AyeTown

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:16:49