检查列表中是否有两个项目按特定顺序排列?

Joh*_*ith 6 python list

说我有一个清单v = [1, 2, 3, 4, 3, 1, 2].我想写一个函数,find_pair它将检查列表中是否有两个数字并且彼此相邻.所以,find_pair(v, 2, 3)应该返回True,但find_pair(v, 1, 4)应该返回False.

是否可以在find_pair没有循环的情况下实现?

eum*_*iro 10

v = [1,2,3,4,3,1,2]
any([2,3] == v[i:i+2] for i in xrange(len(v) - 1))
Run Code Online (Sandbox Code Playgroud)

虽然@ PaoloCapriotti的版本可以解决问题,但这个版本更快,因为它v会在找到匹配后立即停止解析.

  • @eumiro您的信念不正确:-)列表切片创建新列表.例如,这就是创建列表副本的习惯用法背后的机制:``c = s [:]``. (2认同)